GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — feat: add quic transport by achingbrain · Pull Request #3475 · libp2p/js-libp2p

Conversation

@achingbrain

@achingbrain achingbrain commented Apr 24, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Adds a QUIC transport based on the upcoming Node.js PR here.

Currently you need to build a custom Node.js binary for the tests to pass using the instructions on the linked PR.

There are lots of @ts-expect-error where types do not align, and TODOs to be resolved before this is ready.

The code is based on the WebTransport and TCP transports, so expect some copy/paster and some options that are unused at the moment. Also a lot of the protections in the TCP transport around stopping accepting new connections are not present. These should really be pushed higher up into libp2p anyway so all transports can benefit from the protections.

Depends on:

  • feat: export TLS utils #3476
  • quic: complete the QUIC/HTTP3 implementation nodejs/node#62876

Change checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if necessary (this includes comments as well)
  • I have added tests that prove my fix is effective or that my feature works

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

dozyio reacted with heart emoji
All reactions
  • ❤️ 1 reaction
@achingbrain
feat: add quic transport
db13ba6
Adds a QUIC transport based on the upcoming Node.js PR [here](nodejs/node#62876).

Currently you need to build a custom Node.js binary for the tests
to pass using the instructions on the linked PR.
@achingbrain

achingbrain commented Apr 24, 2026

Copy link
Copy Markdown
Member Author

This has been on my hard drive in various forms since last summer so now that the Node.js PR has all the required features it's time to get it somewhere more visible.

tabcat reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@achingbrain
Merge branch 'main' into feat/add-quic-transport
79422d7
achingbrain
achingbrain commented Apr 24, 2026
View reviewed changes
Comment thread packages/transport-quic/src/stream.ts

// TODO: have to copy before write otherwise error is thrown:
// TypeError: Provided key doesn't match [[ArrayBufferDetachKey]]
const bytes = data.subarray(0, toWrite).slice()

@achingbrain achingbrain Apr 24, 2026

Copy link
Copy Markdown
Member Author

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ref: nodejs/node#62876 (comment)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@dozyio
Merge branch 'main' into feat/add-quic-transport
db73d34
@dozyio

dozyio commented May 17, 2026

Copy link
Copy Markdown
Collaborator

Running on macOS

brew install ninja
git clone https://github.com/nodejs/node.git
cd node
./configure --experimental-quic --ninja
./out/Release/node --experimental-quic -e "console.log(require('node:quic'))"
export PATH=$(pwd)/out/Release:$PATH
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@dozyio

dozyio commented May 17, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Collaborator

Added a small ts declarations file - should probably be removed in the future packages/transport-quic/src/node-quic.d.ts

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@achingbrain @dozyio
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.