Giới thiệu @currentspace/http3: API HTTP/3 và QUIC nguyên bản cho Node.js

Phần mềm08 tháng 6, 2026·3 phút đọc

Một thư viện mới mang tên @currentspace/http3 đã được ra mắt, cung cấp API client và server hoàn chỉnh cho HTTP/3 và giao thức QUIC nguyên bản trên nền tảng Node.js. Được xây dựng dựa trên Rust và thư viện quiche, công cụ này cho phép các nhà phát triển thiết lập kết nối mạng hiệu suất cao mà không cần biên dịch lại Node hay sử dụng reverse proxy phức tạp.

Giới thiệu @currentspace/http3: API HTTP/3 và QUIC nguyên bản cho Node.js

Một thư viện mới mang tên @currentspace/http3 đã vừa được giới thiệu trên cộng đồng lập trình, mang đến giải pháp toàn diện để xử lý giao thức HTTP/3 và QUIC trực tiếp trong môi trường Node.js.

Được phát triển bởi tác giả currentspace, gói thư viện này nhằm giải quyết nhu cầu thiết lập các kết nối outbound và inbound sử dụng HTTP/3 cũng như raw QUIC ngay trong mã nguồn Node.js thông thường. Điểm nổi bật là người dùng không cần phải biên dịch Node.js từ nguồn (build from source) hay phải đặt mọi thứ phía sau một reverse proxy.

Công nghệ nền tảng và Tính năng chính

@currentspace/http3 là một gói native được xây dựng xung quanh ngôn ngữ lập trình Rust và thư viện quiche nổi tiếng. Điều này đảm bảo hiệu suất cao và độ an toàn bộ nhớ, đồng thời cung cấp khả năng tương thích rộng rãi với các hệ điều hành hiện đại.

Dưới đây là những tính năng đáng chú ý:

  • Hỗ trợ đa giao thức: Cung cấp Server và Client cho HTTP/3 qua QUIC/UDP, có khả năng tự động fallback (hạ cấp) sang HTTP/2 qua TLS/TCP trên cùng một listener.
  • Raw QUIC API: Cho phép làm việc trực tiếp với các luồng hai chiều (bidirectional streams), datagrams, khôi phục phiên (session resumption) và tùy chỉnh ALPN (Application-Layer Protocol Negotiation).
  • Tối ưu hóa I/O: Sử dụng cơ chế I/O nguyên bản của hệ điều hành như kqueue (macOS), io_uring (Linux fast path) và poll (Linux portable path) để đạt hiệu suất tối đa.
  • Tương thích: Hỗ trợ các adapter như fetch, SSE, EventSource và tương thích với framework Express thông qua @currentspace/http3/express.

Cách sử dụng cơ bản

Việc cài đặt và sử dụng thư viện này khá đơn giản thông qua npm:

npm install @currentspace/http3

Hiện tại, các binary native đã được biên dịch sẵn cho Linux x64/arm64 (glibc) và macOS arm64.

Ví dụ tạo Server

Đoạn mã dưới đây minh họa cách tạo một máy chủ HTTP/3 cơ bản:

import { createSecureServer } from '@currentspace/http3';

const server = createSecureServer({
  key: process.env.TLS_KEY_PEM,
  cert: process.env.TLS_CERT_PEM,
}, (stream, headers) => {
  stream.respond({ ':status': '200', 'content-type': 'text/plain' });
  stream.end(`hello ${String(headers[':path'] ?? '/')}`);
});

server.listen(443, '0.0.0.0');

Ví dụ tạo Client

Kết nối đến một máy chủ HTTP/3 cũng rất trực quan:

import { connectAsync } from '@currentspace/http3';

const session = await connectAsync('example.com:443');
const stream = session.request({
  ':method': 'GET',
  ':path': '/',
  ':authority': 'example.com',
  ':scheme': 'https',
}, { endStream: true });

Chế độ Runtime linh hoạt

Một trong những điểm mạnh của @currentspace/http3 là hỗ trợ lựa chọn chế độ runtime rõ ràng: auto, fast hoặc portable. Điều này giúp các nhà phát triển có thể cân bằng giữa tốc độ và tính khả chuyển khi triển khai trên các môi trường khác nhau như Docker hay các nền tảng đám mây (AWS ECS/Fargate).

Trong phiên bản 0.6.0 mới nhất, thư viện đã bổ sung hỗ trợ mTLS (mutual TLS) cho các client QUIC, cho phép xác thực chứng chỉ client một cách bảo mật. Server raw QUIC giờ đây cũng hỗ trợ chính sách xác thực chứng chỉ client rõ ràng.

Kết luận

Với sự ra mắt của @currentspace/http3, cộng đồng Node.js giờ đây có thêm một công cụ mạnh mẽ để xây dựng các ứng dụng mạng thế hệ mới, tận dụng tốc độ và hiệu quả của giao thức QUIC và HTTP/3 mà không gặp rào cản kỹ thuật phức tạp. Đây là một tin vui cho các kỹ sư đang tìm cách tối ưu hóa hiệu suất cho các dịch vụ web real-time và streaming.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗