Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
b04fccd
Share protocol, crypto and EVM types with browser WASM
mickvandijke Sep 8, 2026
444583a
feat: add portable browser protocol surface
mickvandijke Aug 26, 2026
eb13037
feat: add shared WebRTC transfer deadlines
mickvandijke Aug 31, 2026
949b4e3
feat: protect WebRTC RPCs with PQ sessions
mickvandijke Sep 1, 2026
bd344e5
Use saorsa-core with integrated portable DHT lookup
mickvandijke Sep 8, 2026
c7a3dee
Update shared transport dependency with portable WebRTC module
mickvandijke Sep 8, 2026
751406c
Expose portable client routing and serializable payment plans
mickvandijke Sep 8, 2026
6734169
Pin final shared client routing revision
mickvandijke Sep 8, 2026
f952284
refactor: expose canonical commitment signing payload
mickvandijke Sep 8, 2026
a34f874
refactor: expose shared lookup defaults to clients
mickvandijke Sep 8, 2026
cb8a548
chore: pin recoverable Merkle tree support
mickvandijke Sep 8, 2026
da63025
chore: pin shared Merkle external-wallet ABI
mickvandijke Sep 8, 2026
b339d7c
chore: pin core with reviewed WebRTC transport
mickvandijke Sep 8, 2026
d1f3b0e
chore(deps): pin core with WebRTC admission fixes
mickvandijke Sep 8, 2026
a9e6c5b
chore(deps): pin core with WebRTC admission fixes
mickvandijke Sep 8, 2026
f770652
chore(deps): pin nonempty DHT address replacement rules
mickvandijke Sep 8, 2026
8585cf1
feat(protocol): expose shared signed address verification
mickvandijke Sep 8, 2026
e9cbd34
chore(deps): pin final owner-proven lookup guard
mickvandijke Sep 8, 2026
5f72aa7
chore(deps): pin signed address V2 protocol
mickvandijke Sep 9, 2026
bcae10a
fix(protocol): share browser address capability and lookup deadline
mickvandijke Sep 10, 2026
84e3d36
chore(deps): align shared core and transport revisions
mickvandijke Sep 10, 2026
3d1fe41
chore(deps): align core with browser protocol v6
mickvandijke Sep 11, 2026
c798bc4
chore(deps): align unreleased browser protocol identifiers
mickvandijke Sep 11, 2026
c200144
chore(deps): align core with WebRTC mDNS disabled
mickvandijke Sep 11, 2026
fd4be61
chore(deps): align native WebRTC diagnostics dependencies
mickvandijke Sep 11, 2026
851697b
chore(deps): align core and transport deadline revisions
mickvandijke Sep 14, 2026
c6bbf17
fix(protocol): retain shared portable APIs with settlement and diagno…
mickvandijke Sep 14, 2026
56e2738
feat(evm): expose native payment journal and update dependency pins
mickvandijke Sep 14, 2026
b259d0a
chore(deps): follow core transport cleanup update
mickvandijke Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: WASM portability
on:
push:
branches: [main, master, web-support]
pull_request:
jobs:
wasm:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- uses: Swatinem/rust-cache@v2
- run: cargo check --lib --no-default-features --target wasm32-unknown-unknown
- run: cargo check --lib --no-default-features --features rpc --target wasm32-unknown-unknown
96 changes: 35 additions & 61 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 9 additions & 8 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ homepage = "https://autonomi.com"
readme = "README.md"
keywords = ["p2p", "decentralized", "quantum-safe", "post-quantum", "protocol"]
categories = ["network-programming", "cryptography"]
rust-version = "1.75"
rust-version = "1.91"

[lib]
name = "ant_protocol"
Expand All @@ -21,17 +21,15 @@ path = "src/lib.rs"
# these through `ant_protocol::{transport, pqc, evm}` re-exports so the
# version is pinned in exactly one place. Changing these versions is a
# breaking change for both downstream crates.
# Temporary stacked-PR dependency; replace with the released version from
# WithAutonomi/saorsa-core#162 before merging.
saorsa-core = { version = "0.27.3", git = "https://github.com/WithAutonomi/saorsa-core.git", branch = "feat/v2-903-download-route-diagnostics" }
saorsa-pqc = "0.5"
evmlib = "0.9.1"
saorsa-core = { version = "0.27.3", git = "https://github.com/WithAutonomi/saorsa-core", rev = "a6a9fbb8f876a3d388d23d3d86a7f37f22240faf", default-features = false }
saorsa-pqc = { version = "0.5", git = "https://github.com/saorsa-labs/saorsa-pqc", rev = "6d57e9dd73d537182fe85b0050e809a224f21154", default-features = false }
evmlib = { version = "0.9.1", git = "https://github.com/WithAutonomi/evmlib", rev = "a5f3d6179a9be86f78874030d1514df6cf62fef9", default-features = false }

# Content addressing (BLAKE3)
blake3 = "1"

# Async runtime (used by send_and_await_chunk_response)
tokio = { version = "1.35", features = ["sync", "time", "rt"] }
tokio = { version = "1.35", features = ["sync", "time", "rt"], optional = true }

# Serialization
serde = { version = "1", features = ["derive"] }
Expand All @@ -56,7 +54,10 @@ tokio = { version = "1.35", features = ["full"] }
[features]
# Default: logging enabled so downstream tests and dev builds emit diagnostics.
# Release consumers can strip logging with `--no-default-features`.
default = ["logging"]
default = ["native", "logging"]
native = ["saorsa-core/native", "evmlib/native", "rpc", "dep:tokio"]
# Wallet/RPC operations can also run through browser fetch.
rpc = ["evmlib/rpc"]
# Enable `tracing` macros inside the crate.
logging = ["tracing"]

Expand Down
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,3 +61,22 @@ Licensed under either of
- MIT license ([LICENSE-MIT](LICENSE-MIT))

at your option.

## Native and browser features

The default `native` feature retains the native node transport, wallet, and
local testnet API. With `default-features = false`, the same chunk wire types,
quotes, proof serialization, pricing, commitments, signature verification,
saorsa-core identities/peer records, and lookup APIs compile for browser WASM.
Enable `rpc` for HTTP wallet/contract operations using browser Fetch. Native
socket event handling and local process management require `native`.

```sh
cargo check --lib --no-default-features --target wasm32-unknown-unknown
cargo check --lib --no-default-features --features rpc --target wasm32-unknown-unknown
```

Pre-release dependency revisions are pinned to the coordinated web-support
branches. The earlier experimental browser crypto/session surface on this
branch is superseded by shared saorsa-pqc and saorsa_transport::webrtc APIs; application
messages use the ordinary ant-protocol types on both targets.
Loading
Loading