bombay-address 0.2.0

A generic concurrent address space with generation-safe ownership.
Documentation

Bombay Address

bombay-address is a typed concurrent address space with exclusive, generation-safe ownership. The published package is bombay-address; its Rust library name is address.

[dependencies]
bombay-address = "0.1"
use bombay_address::AddressSpace;

let space = AddressSpace::new();
let lease = space.claim("worker-7", "mailbox")?;

assert_eq!(space.resolve(&"worker-7").as_deref().copied(), Some("mailbox"));
drop(lease);
assert_eq!(space.resolve(&"worker-7"), None);
# Ok::<(), bombay_address::AddressInUse<&str>>(())

AddressSpace::resolve returns an opaque Resolved<E> capability. It avoids exposing Address's storage or reclamation mechanism while preserving the endpoint-defined Clone semantics that construct each non-owning snapshot.

The Lease is the authority to release one exact registration generation. Dropping an old lease cannot remove a newer owner. Resolved endpoints are typed snapshots, and user Clone/Drop code runs outside the table lock.

Lease::registration_id() returns an opaque identity for that exact local registration. It is independent of the address type, process-local, and grants no ownership, release authority, authentication, or durable identity.

Verification

nix flake check -L
nix build .#coverage -L

The bounded models, property tests, stress tests, fuzz targets, replay corpus, and findings record live under research/address-tests/.

See the guide and API reference.

Licensed under Apache-2.0 or MIT, at your option.