Expand description
§ma-core
A lean DIDComm service library for the ma ecosystem.
ma-core provides the building blocks for ma-capable endpoints:
- DID documents — create, validate, resolve, and publish
did:ma:documents to IPFS/IPNS (via Kubo or custom backends). - Service inboxes — bounded, TTL-aware FIFO queues (
Inbox) for receiving validated messages on named protocol services. - Outbox sending — fire-and-forget delivery of validated
Messageobjects to remote endpoints, serialized to CBOR on the wire (Outbox). - Endpoint abstraction — the
MaEndpointtrait with an iroh-backed implementation (IrohEndpoint, behind theirohfeature). - Transport parsing — extract endpoint IDs and protocols from DID document
service strings (
/iroh/<id>/<protocol>). - Identity bootstrap — secure secret key generation and persistence.
§Services
Every endpoint must provide /ma/inbox/0.0.1 (the default inbox).
Endpoints may optionally provide ma/ipfs/0.0.1 to publish DID documents
on behalf of others.
§Feature flags
kubo(default) — enables Kubo RPC client for IPFS publishing.iroh— enables the iroh QUIC transport backend (IrohEndpoint,Channel,Outbox).gossip— enables iroh-gossip broadcast helpers.
§Platform support
Core types (Inbox, Service, transport parsing, validation)
compile on all targets including wasm32-unknown-unknown. Kubo, DID
publishing via Kubo requires a native target.
Re-exports§
pub use error::Error;pub use error::Result;pub use service::Service;pub use service::BROADCAST_PROTOCOL;pub use service::BROADCAST_TOPIC;pub use service::CONTENT_TYPE_BROADCAST;pub use service::CONTENT_TYPE_DOC;pub use service::CONTENT_TYPE_IPFS_REQUEST;pub use service::CONTENT_TYPE_MESSAGE;pub use service::INBOX_PROTOCOL;pub use service::INBOX_PROTOCOL_ID;pub use service::IPFS_PROTOCOL;pub use inbox::Inbox;pub use topic::topic_id;pub use topic::Topic;pub use topic::TopicId;pub use endpoint::MaEndpoint;pub use endpoint::DEFAULT_DELIVERY_PROTOCOL_ID;pub use iroh::channel::Channel;pub use iroh::IrohEndpoint;pub use outbox::Outbox;pub use gossip::broadcast_topic_id;pub use gossip::gossip_send;pub use gossip::gossip_send_text;pub use gossip::join_broadcast_channel;pub use gossip::join_gossip_topic;pub use gossip::topic_id_for;pub use transport::endpoint_id_from_transport;pub use transport::endpoint_id_from_transport_value;pub use transport::normalize_endpoint_id;pub use transport::protocol_from_transport;pub use transport::resolve_endpoint_for_protocol;pub use transport::resolve_inbox_endpoint_id;pub use transport::transport_string;pub use identity::generate_secret_key_file;pub use identity::load_secret_key_bytes;pub use identity::socket_addr_to_multiaddr;pub use resolve::DidResolver;pub use resolve::GatewayResolver;pub use interfaces::DidPublisher;pub use interfaces::IpfsPublisher;pub use ipfs_publish::validate_ipfs_publish_request;pub use ipfs_publish::IpfsPublishDidRequest;pub use ipfs_publish::IpfsPublishDidResponse;pub use ipfs_publish::ValidatedIpfsPublish;pub use pinning::pin_update_add_rm;pub use pinning::PinUpdateOutcome;
Modules§
- endpoint
- Endpoint trait.
- error
- Error types for ma-core.
- gossip
- Shared iroh-gossip helpers for the ma broadcast channel.
- identity
- Secure secret key bootstrap helpers.
- inbox
- Service inbox — a bounded FIFO receive queue with per-message TTL.
- interfaces
- Trait interfaces for pluggable DID and IPFS publishing backends.
- ipfs_
publish - DID document publishing to IPFS/IPNS.
- iroh
- Iroh transport backend.
- outbox
- Transport-agnostic send handle to a remote ma service.
- pinning
- Safe pin lifecycle management.
- presets
- Presets allow configuring an endpoint quickly with a chosen set of defaults.
- resolve
- DID document resolution traits and implementations.
- service
- Service trait for ma endpoint protocol handlers.
- topic
- Gossip pub/sub topic primitive.
- transport
- Transport string parsing and endpoint resolution from DID documents.
Structs§
- Connection
- A QUIC connection.
- Did
- A parsed
did:ma:identifier. - Document
- A
did:ma:DID document. - Encryption
Key - X25519 encryption key for envelope key agreement.
- Endpoint
- Controls an iroh endpoint, establishing connections with other endpoints.
- Endpoint
Addr - Network-level addressing information for an iroh endpoint.
- Headers
- Signed message headers (without content body).
- Message
- A signed actor-to-actor message.
- Proof
- Recv
Stream - A stream that can only be used to receive data
- Relay
Url - A URL identifying a relay server.
- Replay
Guard - Sliding-window replay guard for message deduplication.
- Router
- The built router.
- Secret
Key - A secret key.
- Send
Stream - A stream that can only be used to send data
- Signing
Key - Ed25519 signing key for document proofs and message signatures.
- Verification
Method
Enums§
Constants§
Traits§
- Protocol
Handler - Handler for incoming connections.
Type Aliases§
- Endpoint
Id - The identifier for an endpoint in the (iroh) network.