Protocol and reference implementation for direct messaging over raw Ethernet
Go to file
Juhani Krekelä 2410a28947 Make licensing clear 2019-07-20 22:32:45 +03:00
.gitignore Start working on the frontend 2019-07-10 22:10:14 +03:00
CC0 First commit 2019-07-03 22:20:25 +03:00
Makefile Take better advantage of install(1) 2019-07-19 00:02:21 +03:00
README.md Make licensing clear 2019-07-20 22:32:45 +03:00
arp-request.c Remove unnecessary errno = 0; 2019-07-10 13:38:40 +03:00
ethermess-backend.c Allow tabs in messages 2019-07-16 00:43:22 +03:00
ethermess.1 Let's not give our example users multicast MACs 2019-07-16 19:13:25 +03:00
ethermess.7 Proofreading ethermess.7 2019-07-18 14:30:42 +03:00
ethermess.py Don't modify peers[foo].lastseen unless peers[foo] exists 2019-07-19 00:17:45 +03:00
ethertype-dump.c Remove unnecessary errno = 0; 2019-07-10 13:38:40 +03:00
frontend-backend-protocol.md Document the other case where msgid might become invalid 2019-07-15 11:02:39 +03:00
test.sh Only do setcap in test.sh if necessary 2019-07-16 12:34:34 +03:00

README.md

EtherMess

EtherMess is a protocol for direct messaging over bare Ethernet as well as a reference implementation for it in C and Python.

Building and installing

Build with make and install with make install. If you are installing somewhere other than the default of /usr/local, please set PREFIX to that location during both build and installation steps.

make install will tell you how to set the correct capability on ethermess-backend to allow running it as a normal user.

Protocol documentation

Description of the EtherMess protocol is provided as a man page ethermess.7. The description is contractual, and may not change in incompatible ways unless the version number in the EtherMess packets is updated.

Additionally a description of the protocol spoken between ethermess-backend and ethermess is provided to help understand the code and develop alternative frontends. The description is non-contractual and the protocol may change with future versions of ethermess.

Licensing

Everything in the repository is under Creative Commons Zero 1.0 Universal license.