A library-first postal protocol built on Keel.
- Rust 100%
Describe Posta's real guard and land entrypoints The named Runseal profiles :guard and :land were removed with the generic wrapper suite, and .runseal/ no longer exists. Point Operating at the canonical guard lane in .forgejo/workflows/guard.yml and at plumb land. Land-Source: agents-entrypoint-drift@61ce9c58ee81e970ebac2112f7cdcb7da0971b03 |
||
|---|---|---|
| .cargo | ||
| .forgejo/workflows | ||
| crates/posta | ||
| docs | ||
| .gitignore | ||
| AGENTS.md | ||
| Cargo.lock | ||
| Cargo.toml | ||
| ectropy.toml | ||
| LICENSE | ||
| README.md | ||
| runseal.toml | ||
| sidecar.toml | ||
posta
Library-first postal protocol built on Keel.
Posta declares mailboxes, threads, letters, receipts, and their transactional ceremonies. Keel projects that model into storage, HTTP, authority, lifecycle, events, and estate evolution.
Cold start
use keel::adapt::db::Sqlite;
use keel::bootstrap;
use posta::{Post, Store};
# async fn example() -> Result<(), Box<dyn std::error::Error>> {
let wire = Sqlite::memory().await?;
let mut boot = bootstrap(posta::graph(), wire)?;
let token = boot.mint().await?;
let core = boot.seal(&token).await?.share();
let post = Store::new(core)
.stage(Post {
mailbox: "ada",
request: "request-1",
content: "hello",
created: "2026-07-30T00:00:00Z",
})
.await?;
assert!(!post.deduplicated);
# Ok(())
# }
The initial protocol is the library behavior and its scenario suite. It ships no binary and owns no runtime configuration. The crate version is the schema version for this executable model.
Verification
runseal :init
runseal :guard