Crate ergot

Crate ergot 

Source
Expand description

§ergot

Ergot is a messaging library that can run on a variety of differently sized devices, from large desktop/server PCs down to very small single core microcontrollers.

Ergot allows developers to enjoy a coherent network of devices, regardless of the size of devices, or transport mediums used to connect them.

It includes type-safe sockets, addressing, and routing. In minimal MCU-sized configurations, it requires no allocator, and is no_std friendly. In larger PC-sized configurations, allocations may be used for performance and convenience.

Ergot has grown out of the lessons of the postcard and postcard-rpc projects, and aims to (eventually) supercede postcard-rpc in functionality, with further inspiration from AppleTalk, an OSI-model protocol stack used on Mac computers in the late 80s and early 90s.

Ergot is still very early in development. Bugs are expected. Help is welcome.

§Name

The name “ergot” (pronounced “ur-get”, or more specifically /ˈɜːrɡət/, UR-gət) comes from the Ergot fungus, a parasitic fungus that grows on grains such as rye, produces Lysergic Acid, the precursor of LSD.

This name was chosen in line with the naming theme of the mycelium project.

§License

Licensed under either of

at your option.

§Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Re-exports§

pub use logging::fmtlog;
pub use address::Address;
pub use net_stack::NetStack;
pub use net_stack::NetStackSendError;

Modules§

address
Addressing
book
ergot - An Introduction
conformance
Conformance Test Suite
exports
Exports of used crate versions
interface_manager
The Interface Manager
logging
Here we make logging macros available. Based on features we either export defmt macros or log wrapper macros.
nash
net_stack
The Ergot NetStack
socket
The “Sockets”
toolkits
Toolkits
traits
well_known
wire_frames

Macros§

endpoint
Endpoint macro
fmt
topic
Topic macro

Structs§

AnyAllAppendix
FrameKind
Header
HeaderSeq
Key
ProtocolError

Constants§

DEFAULT_TTL