Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
61 changes: 61 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Publish to crates.io

on:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: crates-io-publish
cancel-in-progress: false

jobs:
verify:
if: github.ref == 'refs/heads/main' && github.repository == 'mp0rta/h3wire'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
ref: ${{ github.sha }}
persist-credentials: false
- uses: dtolnay/rust-toolchain@89b12181fb390509a0842a86cc55eeb8eb928c1d # stable
with:
toolchain: stable
components: rustfmt, clippy
- run: cargo fmt --all --check
- run: cargo clippy --workspace --all-targets --locked -- -D warnings
- run: cargo test --workspace --locked
- run: cargo doc --workspace --no-deps --locked
env:
RUSTDOCFLAGS: -D warnings
- uses: dtolnay/rust-toolchain@89b12181fb390509a0842a86cc55eeb8eb928c1d # stable
with:
toolchain: '1.85'
- run: cargo +1.85 build -p h3wire --locked
- run: cargo +stable package -p h3wire --locked
- run: cargo +stable test --manifest-path target/package/h3wire-*/Cargo.toml --locked
- run: cargo +stable publish -p h3wire --locked --dry-run

publish:
needs: verify
if: github.ref == 'refs/heads/main' && github.repository == 'mp0rta/h3wire'
runs-on: ubuntu-latest
environment: release
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
with:
ref: ${{ github.sha }}
persist-credentials: false
- uses: dtolnay/rust-toolchain@89b12181fb390509a0842a86cc55eeb8eb928c1d # stable
with:
toolchain: stable
- name: Authenticate to crates.io
id: auth
uses: rust-lang/crates-io-auth-action@c6f97d42243bad5fab37ca0427f495c86d5b1a18 # v1.0.5
- run: cargo publish -p h3wire --locked
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
9 changes: 4 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,21 @@ The core (HTTP/3, RFC 9114, and QPACK, RFC 9204) consumes stream bytes and reset
from your QUIC transport and returns events for the application and actions for
the transport, with no I/O, no async runtime and no dependencies beyond `std`
(`#![forbid(unsafe_code)]`, MSRV 1.85).
Status: v0.1 in development. It covers RFC 9114 request/response streams, control
Status: v0.1 core. It covers RFC 9114 request/response streams, control
and QPACK streams, GOAWAY and stream termination, QPACK with the static table only
(no dynamic table), Extended CONNECT (RFC 9220), the HTTP/3 part of HTTP Datagrams
(RFC 9297) and extension points for frame, stream and setting types. There is no
async layer or QUIC adapter yet.

## Installation

The first crates.io release is being prepared. For now, add the library from Git:
Add the library with Cargo:

```sh
cargo add h3wire --git https://github.com/mp0rta/h3wire
cargo add h3wire
```

Once v0.1.0 is published, use `cargo add h3wire` or add
`h3wire = "0.1"` under `[dependencies]` in your `Cargo.toml`.
Or add `h3wire = "0.1"` under `[dependencies]`.

Licensed under either of [Apache License, Version 2.0](LICENSE-APACHE) or
[MIT license](LICENSE-MIT) at your option.
Loading