A peer-to-peer delay-tolerant network (DTN).
Essentially it defines a set of protocols to enable devices to send messages to one another, even if two communicating devices are never online at the same time and even if both are behind firewalls and network address translators (NATs).
Hermes consists of two node types; earth nodes and sky nodes. Earth nodes are the nodes handling the forwarding of message data with one another while Sky nodes play matchmaker, helping earth nodes find other earth nodes and facilitating the establishment of direct connections between them with NAT traversal.
Licensed under GPL-v3.
Hermes directly relies on the following libraries:
- minicbor and minicbor_io (licensed under the Blue Oak Model License).
- Licensed under the MIT License:
- Dual licensed under MIT and Apache 2.0:
- arrayvec
- thiserror
- futures crates:
- rand
- syn
- quote
- proc_macro2
- proc-macro-crate
- quinn
- crypto-bigint
- sha2
For development purposes (just to build and test, not included in the final binary) Hermes relies on several more libraries. These are specified under the [dev-dependencies] in each crate's Cargo.toml file. All dependencies of the dens (Discrete-Event Network Simulator) crate are purely used for testing.