# WebTransport client and server libraries: what exists and its status

> Verified WebTransport libraries for Rust, Go, Python, Node.js, .NET and Deno, with licence, latest release and the status caveats each project states.

URL: https://webtransport.day/guides/webtransport-client-libraries/
Updated: 2026-10-28
Facts checked: 2026-10-28

**Short answer:** Maintained WebTransport libraries exist for Rust (wtransport), Go (webtransport-go), Node.js (@fails-components/webtransport) and Python (aioquic, which targets an older draft). Browsers provide the client API natively. .NET and Deno have preview or experimental support. Each project states draft or production-readiness caveats, listed below as checked on 2026-10-28.

## Key facts

- **Maintained options seen:** Rust (wtransport, web-transport-quinn), Go (webtransport-go), Node.js (@fails-components/webtransport)
- **Draft caveat:** webtransport-go states it implements draft-16
- **Browsers:** The client API is built in; libraries are for servers, native clients and tests

## What WebTransport libraries exist?

Browsers include the client API, so libraries matter mostly for servers, native clients and tests. The table lists libraries we confirmed exist, with the release information we read on the project's registry or GitHub API on 2026-10-28. Releases move quickly: check the linked page before you depend on a version.


| Library | Language | Role | Licence | Latest release we saw | Stated caveats |
|---|---|---|---|---|---|
| [wtransport](https://github.com/BiagioFesta/wtransport) | Rust | Client and server | MIT or Apache-2.0 | 0.7.2 (2026-08-11) | README: WebTransport "is still a draft and not yet standardized"; not considered completely production-ready |
| [web-transport-quinn](https://github.com/moq-dev/web-transport) | Rust, WASM | Client and server | Apache-2.0 or MIT | 0.13.5 (2026-10-24) | No explicit caveats found. Part of the moq-dev project |
| [yew-webtransport](https://github.com/security-union/yew-webtransport) | Rust (WASM) | Browser client for Yew apps | MIT | 0.22.0 (2026-02-09) | Needs the `web_sys_unstable_apis` cfg flag; low activity |
| [webtransport-go](https://github.com/quic-go/webtransport-go) | Go | Client and server | MIT | v0.13.0 (2026-08-30) | README: implements draft-16; pre-v1 |
| [aioquic](https://github.com/aiortc/aioquic) | Python | Server (examples); client not verified | BSD-3-Clause | 1.7.0 | Example server accepts an older draft (draft02), so browser interop is unverified. The examples note the specifications are not finalised |
| [@fails-components/webtransport](https://github.com/fails-components/webtransport) | Node.js | Client and server | BSD-3-Clause per npm (README says the wider FAILS project is AGPL v3: check before adopting) | 1.6.11 (2026-10-18) | Implements parts of the spec; HTTP/2 mode experimental; some API gaps |
| ASP.NET Core Kestrel (`IHttpWebTransportFeature`) | C# | Server | Part of ASP.NET Core | n/a | Microsoft's API docs call WebTransport a preview feature that needs `EnablePreviewFeatures` |
| Deno | TypeScript runtime | Built in (via `Deno.QuicEndpoint`) | n/a | n/a | Deno 2.2 described experimental support requiring `--unstable-net`; we could not confirm the current flag status |
| [Google QUICHE](https://github.com/google/quiche) | C++ | Building blocks | BSD-3-Clause | none shown | A QUIC and HTTP/3 implementation with WebTransport code; embedders implement platform APIs |

### Notes on the table

- **wtransport** is the most complete Rust option we found for both roles and has examples (`client`, `server`, `full`, `gencert`).
- **webtransport-go** is built on quic-go. Its README says it implements draft-16 and its pkg.go.dev page marks it as pre-stable.
- **aioquic** is a general QUIC and HTTP/3 library. Its main README does not mention WebTransport; the examples do. Test it against your target browsers before relying on it.
- **@fails-components/webtransport** works through a native libquiche addon. Read its licensing statement before using it in a product.

## What about browsers?

The API is built in. MDN lists Chrome 97, Firefox 114 and Safari 26.4 as first versions. See [what is WebTransport](/guides/what-is-webtransport/) for the full status.

## What did we leave out, and why?

- **Node.js core.** No native WebTransport. A draft pull request (nodejs/node#63827) was open and unmerged on 2026-10-28.
- **Java and Netty.** We found no Java WebTransport library. `netty-incubator-codec-http3`, an experimental HTTP/3 codec, was archived in May 2026 and does not mention WebTransport.
- **Media over QUIC stacks** (such as `cloudflare/moq-rs` and `moq-dev/moq`). They use WebTransport but are not general WebTransport libraries.
- **Chromium's `quic_transport`.** Its origin trial ended around 2021; we could not confirm any current status, so it is not listed.
- **Unverified projects** seen only in search results.

## How do I pick one?

1. Choose by language and deployment target; see [WebTransport and serverless](/serverless/) for hosting constraints.
2. Check the draft version the library implements against the browsers you support.
3. Run its example server locally and connect with the [WebTransport tester](/tools/webtransport-tester/). The [local testing guide](/guides/test-webtransport-locally/) covers the steps.

## FAQ

### Which WebTransport server library should I start with?

Pick the language you already deploy. Rust has wtransport and web-transport-quinn, Go has webtransport-go (stated to implement draft-16), and Node.js has @fails-components/webtransport. Check each project's stated draft version against the browsers you target.

### Is there a native WebTransport API in Node.js?

Not in Node.js core as of 2026-10-28. A draft pull request (nodejs/node#63827) was open and unmerged when we checked. Use a library such as @fails-components/webtransport instead.

### Do I need a library on the client?

No for browsers: WebTransport is a built-in API. Libraries are for servers, for native clients, and for non-browser environments or tests.

## Sources

- [MDN: WebTransport API](https://developer.mozilla.org/en-US/docs/Web/API/WebTransport_API)
- [wtransport (GitHub)](https://github.com/BiagioFesta/wtransport)
- [wtransport on crates.io](https://crates.io/crates/wtransport)
- [yew-webtransport (GitHub)](https://github.com/security-union/yew-webtransport)
- [quic-go/webtransport-go (GitHub)](https://github.com/quic-go/webtransport-go)
- [webtransport-go on pkg.go.dev](https://pkg.go.dev/github.com/quic-go/webtransport-go)
- [aioquic (GitHub)](https://github.com/aiortc/aioquic)
- [@fails-components/webtransport (GitHub)](https://github.com/fails-components/webtransport)
- [moq-dev/web-transport (GitHub)](https://github.com/moq-dev/web-transport)
- [ASP.NET Core: IHttpWebTransportFeature (Microsoft Learn)](https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.features.ihttpwebtransportfeature)
- [Deno 2.2 release notes](https://deno.com/blog/v2.2)
- [google/quiche (GitHub)](https://github.com/google/quiche)
- [Node.js pull request 63827 (WebTransport draft)](https://github.com/nodejs/node/pull/63827)
