Bibliothèque / SDK
quic-go/quic-go avatar
quic-go/quic-go

quic-go : une implémentation de QUIC et HTTP/3 en Go pur

Ce projet transforme « A production-ready QUIC implementation in pure Go. FIPS 140-3 Starting with v0.60, quic-go supports use in FIPS 140-3 environments when built with Go 1.26 or newer, using Go standard library cryptography for the QUIC code paths relevant in FIPS mode; see FIPS140.md for details. » en une solution open source exploitable, avec une chaîne d’outils réutilisable et des moyens d’intégration pour des cas d’usage concrets.

11 769 étoiles1 643 forksGoMIT

En bref

De quoi s’agit-il ?
A production-ready QUIC implementation in pure Go. FIPS 140-3 Starting with v0.60, quic-go supports use in FIPS 140-3 environments when built with Go 1.26 or newer, using Go standard library cryptography for the QUIC code paths relevant in FIPS mode; see FIPS140.md for details.. Cette analyse examine les entrées, les sorties et les conditions documentées.
À qui s’adresse-t-il ?
quic-go convient aux lecteurs dont le besoin correspond exactement aux fichiers, commandes et environnements décrits dans son README. Il convient moins à une équipe qui attend des garanties absentes du dépôt.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Périmètre protocolaire et RFC

quic-go est une implémentation du protocole QUIC en Go, construite autour des RFC 9000, 9001 et 9002. La même base de code fournit le support HTTP/3 selon la RFC 9114, y compris la compression d'en-têtes QPACK de la RFC 9204 et les datagrammes HTTP de la RFC 9297. Les métadonnées du dépôt décrivent le projet comme une implémentation QUIC de production en Go pur. Le README cite directement ces RFC, mais ne décrit pas l'architecture interne et ne donne aucune mesure de performance.

Extensions au-delà des RFC de base

En plus des RFC de base pour QUIC et HTTP/3, le README liste le support de l'extension de datagrammes non fiables (RFC 9221), de la découverte de MTU de chemin au niveau de la couche de paquetisation (RFC 8899) et de QUIC version 2 (RFC 9369). Il suit également deux brouillons pour la journalisation d'événements qlog, draft-ietf-quic-qlog-main-schema et draft-ietf-quic-qlog-quic-events, ainsi que deux révisions d'un brouillon pour les réinitialisations de flux QUIC avec livraison partielle, draft-ietf-quic-reliable-stream-reset-07 et -09. Le README ne précise pas si ces fonctionnalités sont activées par défaut ni comment les configurer.

WebTransport et documentation

WebTransport sur HTTP/3, basé sur draft-ietf-webtrans-http3, n'est pas implémenté dans ce dépôt. Le README renvoie vers webtransport-go comme projet séparé qui fournit cette prise en charge. La documentation détaillée est publiée sur quic-go.net, sous le chemin /docs/. Le README ne contient pas de commandes d'installation, d'exemples de démarrage rapide ni d'exemples d'utilisation de l'API. Il ne discute pas non plus du support WebTransport dans ce dépôt au-delà de cette référence.

Support FIPS 140-3

À partir de la version v0.60, quic-go supporte une utilisation dans des environnements FIPS 140-3 lorsqu'il est compilé avec Go 1.26 ou plus récent. Dans ce mode, il utilise la cryptographie de la bibliothèque standard de Go pour les chemins de code QUIC pertinents en mode FIPS. Le README renvoie vers FIPS140.md pour les détails et ne prétend pas que le projet lui-même est certifié FIPS. Il ne dit pas non plus si le mode FIPS modifie l'API publique ou exige des drapeaux de compilation spéciaux au-delà de la version de Go.

Projets utilisant quic-go

Le README contient un tableau de projets qui utilisent quic-go, avec des liens et de courtes descriptions. La liste inclut AdGuardHome, Caddy, cloudflared, go-libp2p, Syncthing, Traefik, v2ray-core, Hysteria et OONI Probe, entre autres. Les nombres d'étoiles dans le tableau sont les étoiles GitHub de chaque projet ; le README n'explique pas comment ces projets utilisent quic-go au-delà d'une description d'une ligne. Il demande aux responsables de projets d'envoyer une demande de tirage pour ajouter leur projet à la liste.

Politique de versions et contribution

La politique de versions indique que quic-go vise toujours à supporter les deux dernières versions de Go. La section contribution invite les nouveaux contributeurs et signale les problèmes étiquetés help wanted comme adaptés aux premières contributions, en les décrivant comme autonomes. Le README dit également que les questions peuvent être posées en ouvrant une issue ou en laissant un commentaire. Il ne spécifie pas de processus de contribution détaillé, de procédure de revue de code ni de structure de maintenance.

Licence et éléments de marque

Le code est publié sous licence MIT. L'extrait de licence accorde le droit d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition que l'avis de droit d'auteur et l'avis de permission soient inclus dans toutes les copies ou parties substantielles. La ligne de droit d'auteur nomme les auteurs de quic-go et Google, Inc. La licence comprend également la clause de non-garantie habituelle, le logiciel étant fourni tel quel. Le README précise que le logo et les éléments de marque ne sont pas couverts par la licence MIT et font l'objet d'une politique distincte dans assets/LICENSE.md.

Vérifier quic-go dans son environnement

Pour vérifier quic-go, utilisez le dépôt quic-go/quic-go et reprenez une commande, un fichier ou un exemple explicitement cité dans son README. Exécutez ce scénario dans un environnement isolé, relevez l'entrée, la sortie, les erreurs, les permissions et les fichiers produits, puis comparez-les avec le comportement décrit. Cette vérification porte sur quic-go, sa branche master et ses dépendances réelles ; elle ne transforme pas la démonstration en garantie de compatibilité, de sécurité ou de performance. Les paramètres que le dépôt ne précise pas restent à établir dans votre contexte. Gardez la trace du résultat lorsque vous étendez l'usage à une autre plateforme ou à un autre volume de données.

Conclusion éditoriale

quic-go convient aux lecteurs dont le besoin correspond exactement aux fichiers, commandes et environnements décrits dans son README. Il convient moins à une équipe qui attend des garanties absentes du dépôt. Commencez par quic-go, utilisez l'exemple ou l'entrée documentée, puis observez la sortie, les erreurs et les droits nécessaires avant d'élargir l'usage.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté