Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
318 commits
Select commit Hold shift + click to select a range
6b5b988
fix(h3x): merge Request errored+arbiter into RefCell<Option<Arc>> and…
eareimu May 12, 2026
65c6a07
refactor(h3x): restructure Request construction and authority lifecycle
eareimu May 13, 2026
784e45e
fix(h3x): adapt to dquic v0.5.1 breaking API changes
eareimu May 13, 2026
c8e7a53
refactor(h3x): use &self for H3Endpoint convenience methods
eareimu May 13, 2026
029d234
refactor(h3x): split Request builder into consuming and set_ variants
eareimu May 13, 2026
d22e185
fix(h3x): resolve clippy await_holding_refcell_ref warnings in endpoi…
eareimu May 13, 2026
241e4cb
fix(h3x): wrap missing_server_name test in timeout for SilentRefuse case
eareimu May 14, 2026
0a6fd72
refactor(h3x): simplify H3Endpoint::new to always start with empty pool
eareimu May 14, 2026
9b859fb
refactor(h3x): rename ipc quic tests module and delete stale endpoint…
eareimu May 14, 2026
d398370
refactor(h3x): extract stream test constructors to message::test module
eareimu May 14, 2026
feecc2d
refactor(h3x): parameterize dquic binds and connection hash tests
eareimu May 14, 2026
555b18a
refactor(h3x): delete low-value derive tests and rename qpack Fix mar…
eareimu May 14, 2026
39400f3
test(h3x): add endpoint integration tests for error paths
eareimu May 14, 2026
bb2f5dd
refactor(h3x): update endpoint client tests for extracted helpers and…
eareimu May 14, 2026
bc6c5d7
refactor(h3x): restructure test imports to use h3x::dquic re-exports
eareimu May 14, 2026
8c32723
refactor(h3x): finish ServerName -> Name migration in network test
eareimu May 14, 2026
d54cd9d
chore(h3x): reorganize Cargo.toml deps with internal section comment
eareimu May 14, 2026
c344f3c
refactor(h3x): continue dhttp-identity migration - replace ServerName…
eareimu May 14, 2026
2cb4248
chore(h3x): clean up duplicate dep and unused import
eareimu May 14, 2026
b79ffca
fix(h3x): fix run_reconcile bind race and complete Name migration cle…
eareimu May 14, 2026
7f96b2a
chore: switch dhttp-identity from path to git ref
eareimu May 15, 2026
0417e4c
chore: bump dhttp-identity rev for patch unification fix
eareimu May 15, 2026
4bd30fb
refactor(h3x): dual-generic H3Endpoint<Q, C: quic::Connection>
eareimu May 17, 2026
d02f8d6
refactor(endpoint): rebuild request message state
eareimu May 19, 2026
e05933b
refactor(endpoint): unify message write steps
eareimu May 19, 2026
e2da2c6
feat(network): add bind driver abstraction
eareimu May 19, 2026
bbe1064
feat(quic): use dhttp identity agents
eareimu May 19, 2026
f106456
chore(deps): use dhttp identity from main
eareimu May 19, 2026
d8f120d
fix(dquic): seed local endpoints on connect
eareimu May 19, 2026
dc8340d
fix(dquic): prefer viable local endpoints on connect
eareimu May 19, 2026
becb522
fix(binds): match IPv6 bind URIs
eareimu May 19, 2026
c40651b
fix(endpoint): ignore incompatible local address events
eareimu May 19, 2026
1896114
feat(endpoint): expose connection pool clearing
eareimu May 19, 2026
d66fb6c
feat(network): expose default route bind check
eareimu May 19, 2026
ae0b0c2
fix(network): rebind quic interfaces on reconcile
eareimu May 20, 2026
94b41f1
fix(endpoint): handle nat punch location events
eareimu May 20, 2026
f38b76c
fix(endpoint): seed current stun endpoints for agent peers
eareimu May 20, 2026
406ce90
fix(endpoint): ignore non-best replayed local paths
eareimu May 20, 2026
796ff71
fix(endpoint): install ready peer endpoint batch
eareimu May 20, 2026
0816299
fix(endpoint): self-connect through own stun endpoint
eareimu May 20, 2026
49fac98
refactor(endpoint): update path discovery and server service api
eareimu May 20, 2026
a0e2b38
fix(endpoint): delegate address pairing to qtraversal
eareimu May 20, 2026
9927738
refactor(endpoint): move high-level dhttp api out of h3x
eareimu May 20, 2026
b4de02c
chore: trace endpoint connection paths
eareimu May 20, 2026
b7236bd
refactor(dquic): move quic bind state into driver
eareimu May 21, 2026
121adac
feat(endpoint): accept h3 connections directly
eareimu May 21, 2026
482556b
add BufList constructor from Buf
eareimu May 21, 2026
392f303
refactor(stream): layer read stream operations
eareimu May 25, 2026
af74353
refactor(stream): layer write stream operations
eareimu May 25, 2026
c725947
refactor(stream): order stream methods by layer
eareimu May 25, 2026
9e2b59c
refactor: move extension settings to owner modules
eareimu May 25, 2026
8e402f9
feat: add established extended connect core
eareimu May 25, 2026
ccccd0c
feat: add hyper extended connect establish adapter
eareimu May 25, 2026
c2505fd
feat: add hyper extended connect accept adapter
eareimu May 25, 2026
d281bc0
feat: create webtransport sessions from extended connect
eareimu May 25, 2026
e473150
feat: create webtransport sessions from extended connect
eareimu May 25, 2026
6551302
refactor: use full webtransport names in routing
eareimu May 25, 2026
00d9efa
refactor: update webtransport api references
eareimu May 25, 2026
fd936bc
fix: validate h3 request pseudo headers
eareimu May 26, 2026
8273680
test: enable all-features h3x tests
eareimu May 26, 2026
c9755e0
ci: test h3x all features and publish coverage
eareimu May 26, 2026
1a1c5c3
docs: document h3x coverage workflow
eareimu May 26, 2026
cbdd49c
ci: align coverage gate with all-features baseline
eareimu May 26, 2026
989581d
ci: keep coverage reports under llvm-cov
eareimu May 26, 2026
ecf4735
test: cover message stream unfold adapters
eareimu May 26, 2026
7301735
test: cover rpc ipc error conversions
eareimu May 26, 2026
2213c89
test: cover protocol wrapper types
eareimu May 26, 2026
51792e7
test: cover hyper write adapter
eareimu May 26, 2026
d0e9c95
test: cover hyper read adapter
eareimu May 26, 2026
d8a7c9a
test: cover rpc quic stream delegates
eareimu May 26, 2026
c0157f4
test: cover rpc message stream delegates
eareimu May 26, 2026
c371511
test: cover server compatibility wrapper
eareimu May 26, 2026
ac80253
test: cover rpc quic connect listen
eareimu May 26, 2026
27576da
test: cover webtransport session traits
eareimu May 26, 2026
7dfe052
test: cover hyper server adapters
eareimu May 26, 2026
166fc1a
test: cover rpc quic agents
eareimu May 26, 2026
cc646aa
test: cover rpc stream bridges
eareimu May 26, 2026
212f5ee
test: cover rpc webtransport sessions
eareimu May 26, 2026
56b52f8
test: cover error and deferred utilities
eareimu May 26, 2026
91c4984
test: cover deferred pending paths
eareimu May 26, 2026
1171d09
test: cover rpc quic connections
eareimu May 26, 2026
71c733d
test: cover dangerous tls verifier
eareimu May 26, 2026
c3f0468
fix: correct qpack and sni cleanup paths
eareimu May 26, 2026
a8ca2ce
test: cover qpack protocol and sni registry
eareimu May 26, 2026
e4fef7f
test: cover settings protocol and ipc adapters
eareimu May 26, 2026
beb084a
test: cover qpack field sections
eareimu May 26, 2026
ade2e8b
test: cover dquic agent shims
eareimu May 26, 2026
4957ad7
test: cover hyper client requests
eareimu May 26, 2026
29c73d3
test: cover connection state utilities
eareimu May 26, 2026
6a757a3
test: cover qpack dynamic codec paths
eareimu May 26, 2026
83cedd4
test: cover webtransport routing and sessions
eareimu May 26, 2026
d60e768
test: cover endpoint pool and adapter paths
eareimu May 26, 2026
2189723
refactor: remove deprecated server facade
eareimu May 26, 2026
2401c72
test: cover dhttp and ipc protocol paths
eareimu May 26, 2026
b58c57b
feat(endpoint): expose QUIC transport extraction
eareimu May 26, 2026
c1ac25e
test: cover lower-level protocol adapters
eareimu May 26, 2026
8ea531a
test: cover remaining stream adapter paths
eareimu May 26, 2026
336c9ef
test: cover frame and stream utility paths
eareimu May 26, 2026
39ad9ad
refactor(webtransport): namespace lifecycle latch helpers
eareimu May 26, 2026
1c1ba8d
test: cover protocol utility edge cases
eareimu May 26, 2026
f7cdca1
test: cover endpoint serve connection paths
eareimu May 26, 2026
6594254
test: cover endpoint and webtransport edges
eareimu May 26, 2026
05f1892
test: cover codec stream and webtransport edges
eareimu May 26, 2026
317e981
fix: preserve ipc webtransport accept error api
eareimu May 26, 2026
145e9b0
test: cover qpack encoder state edges
eareimu May 26, 2026
fabb08d
test: cover qpack decoder edge paths
eareimu May 26, 2026
5c02782
test: cover buflist cursor and io paths
eareimu May 26, 2026
d411df8
test: cover qpack hyper field conversions
eareimu May 26, 2026
d84eba0
refactor(webtransport): remove legacy lifecycle re-export
eareimu May 27, 2026
6de0f98
docs(hyper): document response body pinning contract
eareimu May 27, 2026
dbc8d2d
test(webtransport): cover latched closed resolution
eareimu May 27, 2026
799fea1
test: expand protocol utility coverage
eareimu May 27, 2026
dfeed19
fix(qpack): normalize HTTP request pseudo path
eareimu May 27, 2026
aee5336
test: cover endpoint and webtransport paths
eareimu May 27, 2026
45c8fae
test: cover pool and write stream adapters
eareimu May 27, 2026
8296a11
test: cover qpack and codec reader paths
eareimu May 27, 2026
f32ce16
test: cover qpack algorithm and hyper write paths
eareimu May 27, 2026
d219ab1
test: cover codec writer and stream adapters
eareimu May 27, 2026
930bbc9
fix: unify rpc ipc error latch handling
eareimu May 27, 2026
58a4e14
fix: match iface bind patterns by components
eareimu May 27, 2026
927d6db
test: cover ipc rpc lifecycle paths
eareimu May 27, 2026
973232b
test: cover qpack protocol pool paths
eareimu May 27, 2026
3c4da73
chore: use https git dependencies
eareimu May 28, 2026
014818a
test: cover qpack protocol pool paths
eareimu May 27, 2026
3b4b727
fix: accept maximum QUIC varint
eareimu May 27, 2026
2adb59b
test: cover qpack lifecycle registry paths
eareimu May 27, 2026
d7752da
test: cover settings qpack quic edge paths
eareimu May 27, 2026
4081958
test: cover webtransport quic helper paths
eareimu May 27, 2026
0ca0600
test: cover ipc rpc endpoint helper paths
eareimu May 27, 2026
cabb4bf
test: cover connection network stream paths
eareimu May 27, 2026
e1e387f
fix: latch dquic lifecycle errors
eareimu May 27, 2026
90ecfc8
test: cover ipc webtransport endpoint paths
eareimu May 27, 2026
573a32a
test: cover endpoint ipc webtransport edges
eareimu May 27, 2026
c2f9379
test: cover dquic qpack unfold paths
eareimu May 27, 2026
1e1ee05
test: cover dhttp protocol control paths
eareimu May 27, 2026
845f718
test: cover rpc lifecycle guards
eareimu May 27, 2026
2070fed
test: cover dquic shim lifecycle edges
eareimu May 27, 2026
17d442d
test: cover ipc quic listener paths
eareimu May 27, 2026
3cec634
test: cover qpack encoder paths
eareimu May 27, 2026
88ef004
test: cover ipc quic connector paths
eareimu May 27, 2026
7631d3a
test: cover webtransport protocol helpers
eareimu May 27, 2026
b5e0e14
test: cover qpack duplicate replay
eareimu May 27, 2026
e731dc1
test: cover ipc quic connection helpers
eareimu May 27, 2026
bdead59
test: cover ipc webtransport session adapters
eareimu May 27, 2026
a4d4b67
test: cover rpc quic agent paths
eareimu May 27, 2026
c0c0fee
test: cover hyper client request paths
eareimu May 27, 2026
cae7c40
test: cover ipc quic test helpers
eareimu May 27, 2026
1e4e6b6
test: cover stream decode error branches
eareimu May 27, 2026
1f4c44f
test: cover rpc bridge error paths
eareimu May 27, 2026
e19ae4b
test: cover dquic shim listener helpers
eareimu May 27, 2026
48390a5
test: cover qpack and dquic shim error paths
eareimu May 28, 2026
61dcfc3
test: cover bind patterns and pseudo headers
eareimu May 28, 2026
8fc85e6
test: cover stream delegation edges
eareimu May 28, 2026
1557d18
test: cover h3 framing and connect edges
eareimu May 28, 2026
eacb77c
chore: use https git dependencies
eareimu May 28, 2026
72cf4ee
test: cover utility and protocol edge cases
eareimu May 28, 2026
acdfddf
test: cover lifecycle and deferred edges
eareimu May 28, 2026
51c3923
test: cover hyper write request edges
eareimu May 28, 2026
b4de6a0
test: cover endpoint adapter edge cases
eareimu May 28, 2026
276dfd2
test: cover stream and qpack edge cases
eareimu May 28, 2026
4b57849
test: cover qpack field edge cases
eareimu May 28, 2026
f659b19
test: cover dhttp qpack closure paths
eareimu May 28, 2026
3a61d26
test: cover frame and deferred error paths
eareimu May 28, 2026
48d84e0
test: cover unfold sink sequencing
eareimu May 28, 2026
eb89ef7
test: cover decode and stream error edges
eareimu May 28, 2026
3d0023b
fix(dhttp): resolve peer_settings on connection closure
eareimu May 28, 2026
aeb0b7b
test(rpc::bridge): cover Right-branch retry and pending-future drain …
eareimu May 28, 2026
7b15d68
test(endpoint): yield to spawned task so failing handler logs error
May 28, 2026
0d04c26
test(connection): cover ConnectionBuilder Display impl
May 28, 2026
7dbc98a
test(connection): cover accept_bi/uni stream task error scopes
eareimu May 28, 2026
6372fef
ci: prepare h3x crates.io release
eareimu May 31, 2026
3cd38a0
refactor: rename agent APIs to authorities
eareimu May 31, 2026
34a479c
chore: normalize release metadata formatting
eareimu May 31, 2026
d38ef3e
Avoid unusable direct QUIC paths
eareimu May 31, 2026
1bd0f4b
fix(dquic): align endpoint and network resolver controls
eareimu Jun 1, 2026
8601045
chore: align nix dependency
eareimu Jun 2, 2026
261d1c8
chore: remove unused dependencies
eareimu Jun 2, 2026
237b3b0
refactor(ipc): split mux transport drivers
eareimu Jun 2, 2026
f8e8145
fix(ipc): make fd handoff tasks cancel-safe
eareimu Jun 2, 2026
97a7898
fix(message): preserve stream control semantics
eareimu Jun 3, 2026
65c1c3a
fix(quic): rename stream reset API
eareimu Jun 3, 2026
7373395
fix(quic): preserve reset semantics in stream adapters
eareimu Jun 3, 2026
acb0658
fix(message): emit qpack cancellation for stopped readers
eareimu Jun 3, 2026
4e97842
fix(quic): preserve committed stream control operations
eareimu Jun 3, 2026
7f5d816
refactor: standardize stream reader writer type names
eareimu Jun 4, 2026
8f714f6
ci: rename release workflows to publish
eareimu Jun 4, 2026
c79a775
refactor(message): track message stream lifecycle
eareimu Jun 5, 2026
894561b
fix(quic): terminate deferred reader after open error
eareimu Jun 5, 2026
fc39e44
feat: add shared stream frame vocabulary
eareimu Jun 5, 2026
331a2f6
fix(rpc): align authority signing API
eareimu Jun 5, 2026
46adf5f
test: add stream frame bridge harness
eareimu Jun 5, 2026
a7766e2
feat: add worker read stream frame bridge
eareimu Jun 5, 2026
ebfdd28
feat: add worker write stream frame bridge
eareimu Jun 5, 2026
2eddb4b
feat: drain committed stream frames on handle drop
eareimu Jun 5, 2026
d26cf89
feat: add stream frame hypervisor bridges
eareimu Jun 5, 2026
22b2259
feat: route ipc streams through frame bridge
eareimu Jun 5, 2026
c0cf34d
feat: move rpc streams to frame channels
eareimu Jun 5, 2026
33b468a
feat: remove fd transfer ack cancel protocol
eareimu Jun 5, 2026
29817f6
fix: prepare ipc mux before fd delivery
eareimu Jun 5, 2026
26adf1a
fix: await rpc frame channel sends
eareimu Jun 6, 2026
0e892a8
fix: cap ipc push reserve growth
eareimu Jun 6, 2026
70c6acd
fix: preserve ipc webtransport accept errors
eareimu Jun 6, 2026
8361151
feat: add webtransport session stream wrappers
eareimu Jun 6, 2026
3fda8e1
test: cover h3x module path reorganization
eareimu Jun 6, 2026
e76b091
feat: add generic stream capability layer
eareimu Jun 6, 2026
c226386
fix: decouple generic streams from quic errors
eareimu Jun 6, 2026
8f8d2c4
fix: keep stream unfold namespace generic
eareimu Jun 6, 2026
11ba34f
feat: move message streams under dhttp message
eareimu Jun 6, 2026
e311aee
style: format h3x module path test
eareimu Jun 6, 2026
fcbd3ac
fix: tighten dhttp message public API
eareimu Jun 6, 2026
853172f
feat: move hyper client support to message hyper
eareimu Jun 6, 2026
ac1f19a
fix: limit qpack hyper helper visibility
eareimu Jun 6, 2026
82ae6d1
feat: move hyper service adapters to endpoint
eareimu Jun 6, 2026
c9e195b
feat: collapse hyper facade to single file
eareimu Jun 6, 2026
711fa94
docs: update h3x stream and hyper paths
eareimu Jun 6, 2026
e8c3d88
fix: own hyper request body sender task
eareimu Jun 6, 2026
20f5066
feat: add webtransport session id semantics
eareimu Jun 6, 2026
4170ca9
feat: add webtransport flow control settings
eareimu Jun 6, 2026
f400c09
feat: add webtransport capsules and close values
eareimu Jun 6, 2026
bc36f9b
fix: use typed webtransport session ids
eareimu Jun 7, 2026
ecf046a
fix: use webtransport session rejection codes
eareimu Jun 7, 2026
5bef7ce
feat: add webtransport capsule payload codecs
eareimu Jun 7, 2026
38ead46
feat: enforce webtransport incoming stream credit
eareimu Jun 7, 2026
361c06e
feat: drive webtransport connect control capsules
eareimu Jun 7, 2026
e4f9905
feat: enforce webtransport local stream credit
eareimu Jun 7, 2026
4345e70
fix: require negotiated webtransport settings
eareimu Jun 7, 2026
c6088e4
feat: propagate webtransport session control APIs
eareimu Jun 7, 2026
ac0bcb1
fix: stabilize webtransport connection setup
eareimu Jun 7, 2026
9b80db6
ci: rename publish workflow titles
eareimu Jun 8, 2026
82de0f6
test(identity): update dhttp identity examples
eareimu Jun 8, 2026
52247d7
fix: keep local patches out of manifest
eareimu Jun 9, 2026
31b0096
docs: qualify stop stream link
eareimu Jun 9, 2026
83eee6c
fix: pass owned fd to nix fcntl
eareimu Jun 10, 2026
81a370b
fix(network): scope reconcile to interface events
eareimu Jun 10, 2026
20392f0
fix(network): serialize bind entry operations
eareimu Jun 12, 2026
378ba29
fix(network): make bind entry cleanup cancellation-safe
eareimu Jun 12, 2026
26b1ce6
fix(network): use full bind uri identity
eareimu Jun 12, 2026
1136d33
test(network): strengthen bind uri identity coverage
eareimu Jun 12, 2026
dda7a9a
fix(network): reject sni identity conflicts
eareimu Jun 12, 2026
c8b4203
fix(network): make sni registration atomic
eareimu Jun 12, 2026
dc52f3c
fix(network): keep sni decisions atomic
eareimu Jun 12, 2026
fbc2bf5
fix(network): close sni registry races
eareimu Jun 12, 2026
6ae5599
fix(endpoint): consume local address removals
eareimu Jun 12, 2026
e6442fb
fix(endpoint): preserve local address tracking
eareimu Jun 12, 2026
1fe5df3
fix(network): make close batch detach explicit
eareimu Jun 14, 2026
9dc08d1
fix(pool): remove instrument err auto logging
eareimu Jun 14, 2026
8e68306
fix(network): remove trailing blank line
eareimu Jun 14, 2026
cb41bed
release: prepare v0.3.0
eareimu Jun 14, 2026
a825de1
test(network): cover split wildcard bind semantics
eareimu Jun 14, 2026
ba4f6a6
release: converge upstream pins
eareimu Jun 15, 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
43 changes: 40 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
with:
components: clippy
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --no-default-features --features hyper -- -D warnings
- run: cargo clippy --all-features --all-targets -- -D warnings

doc:
name: Documentation
Expand All @@ -41,7 +41,9 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo doc --no-deps --no-default-features --features hyper
# rpc/ipc rustdoc needs a consumer-selected remoc codec and a separate
# docs-link cleanup; clippy, tests, and coverage still exercise all features.
- run: cargo doc --no-deps --no-default-features --features dquic,hyper,serde,testing,webtransport

test:
name: Tests
Expand All @@ -50,4 +52,39 @@ jobs:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo test --no-default-features --lib
- run: cargo test --all-features --all-targets

coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
run: cargo install cargo-llvm-cov --locked
- name: Generate coverage summary
run: |
cargo llvm-cov clean
mkdir -p target/llvm-cov
cargo llvm-cov \
--all-features \
--all-targets \
--summary-only \
--json \
--output-path target/llvm-cov/coverage.json \
--fail-under-lines 62 \
--fail-under-functions 56 \
--fail-under-regions 64
- name: Generate LCOV report
run: cargo llvm-cov report --lcov --output-path target/llvm-cov/lcov.info
- name: Generate HTML report
run: cargo llvm-cov report --html --output-dir target/llvm-cov
- name: Upload coverage reports
uses: actions/upload-artifact@v4
with:
name: h3x-coverage
path: |
target/llvm-cov/coverage.json
target/llvm-cov/lcov.info
target/llvm-cov/html
53 changes: 53 additions & 0 deletions .github/workflows/publish-crates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Publish crates.io

on:
pull_request:
workflow_dispatch:
push:
branches:
- main
tags:
- "v*"

env:
CARGO_TERM_COLOR: always

jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write

steps:
- uses: actions/checkout@v4

- name: Install Rust stable toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1

- name: Test crate
run: cargo test --all-features --all-targets

- name: Authenticate to crates.io
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'v')
uses: rust-lang/crates-io-auth-action@v1
id: auth

- name: Release h3x crate
shell: bash
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
run: |
set -euo pipefail

if [[ "${GITHUB_REF_TYPE}" == "tag" && "${GITHUB_REF_NAME}" == v* ]]; then
mode=publish
else
mode=dry-run
fi

if [[ "$mode" == "dry-run" ]]; then
cargo publish --dry-run
else
cargo publish
fi
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ Cargo.lock
/target
AGENTS.md
.sisyphus/
test_locations
48 changes: 16 additions & 32 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "h3x"
description = "High-performance zero-copy DHTTP/3 implementation"
version = "0.2.0"
description = "Peer-to-peer DHTTP/3 transport over QUIC"
version = "0.3.0"
edition = "2024"
readme = "README.md"
repository = "https://github.com/genmeta/h3x"
Expand All @@ -26,12 +26,12 @@ snafu = "0.9"
tokio = { version = "1", features = ["rt", "macros", "sync", "io-util"] }
tokio-util = { version = "0.7", features = ["codec", "io", "rt"] }
tracing = "0.1"
matchit = "0.9"
x509-parser = "0.18"
tower-service = "0.3"

dhttp-identity = { git = "https://github.com/genmeta/dhttp.git", branch = "publish", version = "0.1.0" }

# feature dquic
dquic = { git = "ssh://git@github.com/genmeta/dquic.git", branch = "feat/v0.5.1", optional = true }
dquic = { git = "https://github.com/genmeta/dquic.git", tag = "v0.5.1", version = "0.5.1", optional = true }

# feature hyper
http-body = { version = "1", optional = true }
Expand All @@ -50,7 +50,7 @@ remoc = { version = "0.18", default-features = false, optional = true, features
] }

# feature pipe
nix = { version = "0.29", default-features = false, optional = true, features = [
nix = { version = "0.31", default-features = false, optional = true, features = [
"fs",
"socket",
"uio",
Expand All @@ -60,51 +60,32 @@ smallvec = { version = "1", optional = true }
# feature endpoint
arc-swap = { version = "1", optional = true }
async-channel = { version = "2", optional = true }
derive_more = { version = "2", optional = true, features = [
"deref",
"deref_mut",
"from",
"into",
] }
either = { version = "1", optional = true }
globset = { version = "0.4", optional = true }
peg = { version = "0.8", optional = true }


[features]
default = ["dquic", "hyper", "endpoint"]
dquic = ["dep:dquic"]
endpoint = [
"dquic",
default = ["dquic", "hyper"]
dquic = [
"dep:dquic",
"dep:arc-swap",
"dep:async-channel",
"dep:derive_more",
"dep:either",
"dep:globset",
"dep:peg",
"tokio/time",
]
hyper = ["dep:http-body", "dep:http-body-util", "dep:hyper"]
serde = ["dep:serde"]
# EXPERIMENTAL — consumer crates must also enable exactly one remoc default-codec-* feature.
# h3x tests select default-codec-bincode in [dev-dependencies] for all-features CI.
rpc = ["dep:remoc", "serde", "bytes/serde"]
# EXPERIMENTAL — depends on rpc and the same consumer-selected remoc codec.
ipc = ["rpc", "dep:nix", "dep:smallvec", "tokio/net"]
webtransport = []
testing = []


[dev-dependencies]
axum = { version = "0.8", default-features = false, features = [
"form", # (default)
# "http1", # (default)
"json", # (default)
"matched-path", # (default)
"original-uri", # (default)
"query", # (default)
"tokio", # (default)
"tower-log", # (default)
"tracing", # (default)
"macros", # for debug_handler
] }
rustls = { version = "0.23", default-features = false, features = [
"ring",
"logging",
Expand All @@ -118,4 +99,7 @@ tokio = { version = "1", features = [
tracing-appender = "0.2"
tracing-subscriber = "0.3"
proptest = "1"
# remoc = { version = "0.18", features = ["default-codec-bincode"] }
remoc = { version = "0.18", default-features = false, features = [
"default-codec-bincode",
] }
serde_json = "1"
Loading
Loading