| Crates.io | envelo |
| lib.rs | envelo |
| version | 0.0.1 |
| created_at | 2026-01-01 16:21:42.238625+00 |
| updated_at | 2026-01-01 16:21:42.238625+00 |
| description | Minimal envelope that bundles header, payload, and per-route metadata; no dependencies and `#![no_std]`. |
| homepage | https://github.com/envelo-rs/envelo |
| repository | https://github.com/envelo-rs/envelo |
| max_upload_size | |
| id | 2016391 |
| size | 26,435 |
⚠️ 0.0.x is pre-release/experimental; breaking changes are expected. See VERSIONS.md for status and compatibility details.
Minimal envelope for creation-time fields (Header), body (Payload), and per-route metadata (Extension). One type, zero dependencies, and #![no_std] by default.
Envelo<Header, Payload, Extension>.Header; hop-local metadata in Extension.into_parts, and From<(H, P, E)> for easy wrapping.Debug + Clone + PartialEq + Eq + Hash when your field types support them.#![no_std] without feature flags.[dependencies]
envelo = "0.0.1"
use envelo::Envelo;
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
struct Header {
event_id: &'static str,
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
struct UserSignup<'a> {
user_id: &'a str,
}
let msg = Envelo::new(
Header { event_id: "evt-123" },
UserSignup { user_id: "alice" },
(), // nothing to attach per route yet
);
assert_eq!(msg.payload().user_id, "alice");
Swap or mutate Extension as the message moves between stages. See ARCHITECTURE.md for design notes and patterns.
Dual-licensed under MIT OR Apache-2.0. See the bundled license files.