Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

336 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SPEX

Secure Permissioned Exchange.

CI

Official Project Statement

SPEX is a security-first messaging and transport protocol with end-to-end encryption based on MLS. It is network-agnostic and can operate over HTTP, P2P, or hybrid delivery paths.

Institutional metadata:

  • Created in 2026.
  • Authored by Richard Ikeda.
  • Built with extensive AI and testing tooling plus technical engineering work.
  • Initially developed for personal use, and published as open source for adoption and public code verification.

What SPEX Is

  • A protocol, not just an app.
  • Explicit permissioned communication.
  • Deterministic wire behavior (CBOR canonical/CTAP2).
  • Untrusted transport model (bridge/DHT/P2P are treated as untrusted).

Protocol north:

Secure. Permissioned. Explicit.

Repository Components

  • spex-core: core types, canonical CBOR, hashing, signatures, PoW, shared validation.
  • spex-mls: MLS integration and epoch/recovery safety paths.
  • spex-transport: P2P transport, chunking/manifests, fallback paths, ingestion validation.
  • spex-bridge: HTTP relay with explicit validation and abuse controls.
  • spex-client: high-level SDK for identity/state/thread/message flows.
  • spex-cli: reference CLI for operational and integration flows.

Open Source Governance and Security Readiness

This repository includes the standard open source governance and release controls expected for a security-sensitive protocol project:

SPEX is published as open source under a single project license: Mozilla Public License 2.0. This repository does not currently use dual licensing or AGPL terms.

Documentation Map

Quick Start

Build:

cargo build --workspace

Test:

cargo test --workspace

Reference release gates:

cargo test --workspace --locked --verbose
cargo test --workspace --locked --all-features --verbose
cargo fmt --all -- --check
cargo clippy --workspace --locked -- -D warnings
./scripts/release_gate_docs.sh
./scripts/release_gate_negative_test.sh

Security Notes

  • Use TLS for all HTTP integrations.
  • Validate grants and PoW at all trust boundaries. Request acceptance uses a receiver-owned minimum policy, request-field binding, freshness checks, and persisted replay rejection in the normal stateful path.
  • P2P listeners default to loopback; external interfaces require an explicit --listen-addr choice and operator network controls.
  • Treat key changes as critical events.
  • Protect local state at rest.
  • Never trust transport as a security boundary.

Getting Help

  • General usage, integration, and contribution questions: open a GitHub issue with reproducible context.
  • Security reports: do not use public issues; follow SECURITY.md.
  • Project changes and security fixes are published through repository history and release notes in CHANGELOG.md.

Versioning

  • Crate versions in each Cargo.toml are authoritative for published Rust packages.
  • VERSION.md tracks SPEX protocol/repository release metadata.
  • CHANGELOG.md is the human-readable history of release changes.
  • Version bumps are validated on every PR by the Version Guard workflow.
  • To trigger a manual version bump and changelog update, use the Auto Version Bump workflow via workflow_dispatch.

License

SPEX is licensed under Mozilla Public License 2.0. See LICENSE.MD.

Secure. Permissioned. Explicit.

About

Secure Permissioned Exchange.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages