ergot-base

Crates.ioergot-base
lib.rsergot-base
version0.9.1
created_at2025-06-17 08:55:32.441592+00
updated_at2025-08-18 13:13:37.429168+00
descriptionEloquence in messaging
homepage
repositoryhttps://github.com/jamesmunns/ergot
max_upload_size
id1715432
size287,947
James Munns (jamesmunns)

documentation

https://docs.rs/ergot/

README

ergot-base

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.

ergot and ergot-base

Ergot is split into two parts:

  • ergot-base is the core of messaging functionality, but is not intended to be used directly by end users
  • ergot extends ergot-base, and currently provides a postcard-rpc-influenced set of capabilities

Most users should use ergot and not ergot-base. The split is to keep ergot-base stable as I iterate on the behavior of sockets in ergot.

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.

Commit count: 146

cargo fmt