Skip to content
richardikedaPublic

About

Secure Permissioned Exchange.

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

337 Commits

Folders and files

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

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages