# quic-go

> implementation of the QUIC transport protocol in Go

**Wikidata**: [Q105941555](https://www.wikidata.org/wiki/Q105941555)  
**Source**: https://4ort.xyz/entity/quic-go

## Summary
quic-go is a free software implementation of the QUIC transport protocol written in the Go programming language. It enables developers to integrate fast, secure, and multiplexed network communication into their applications. The project is actively maintained and used in production environments.

## Key Facts
- Implements the **QUIC** transport protocol, designed for low-latency and secure web communication
- Written in **Go**, a programming language developed by Google since 2009
- Licensed under the **MIT License**, making it suitable for both open-source and commercial use
- First stable release was **v0.5.0**, published on **April 12, 2017**
- Hosted at GitHub repository: [https://github.com/lucas-clemente/quic-go](https://github.com/lucas-clemente/quic-go)
- Documentation available at: [https://quic-go.net/docs/](https://quic-go.net/docs/)
- Uses **continuous integration** via Travis CI for quality assurance
- Supports multiple versions including up to **v0.11.1** as of early 2019
- Issue tracking handled through GitHub Issues

## FAQs
### Q: What is quic-go used for?
A: quic-go allows developers to implement the QUIC protocol in applications built with Go. It supports faster connection establishment, improved security, and better performance compared to traditional protocols like TCP.

### Q: Is quic-go free to use?
A: Yes, quic-go is distributed under the MIT License, which permits free usage, modification, and redistribution, even in proprietary software.

### Q: How can I get started with quic-go?
A: Visit the official documentation site at [https://quic-go.net/docs/](https://quic-go.net/docs/) or clone the source code from its GitHub repository: [https://github.com/lucas-clemente/quic-go](https://github.com/lucas-clemente/quic-go).

## Why It Matters
quic-go plays a critical role in modern internet infrastructure by bringing support for the QUIC transport protocol to the Go ecosystem. As QUIC becomes more widely adopted—especially by major services such as Google and Cloudflare—having a robust, native Go implementation ensures that developers building high-performance web services can leverage QUIC’s benefits without leaving the Go environment. This includes reduced latency, enhanced encryption, and improved resilience against packet loss. quic-go also contributes to broader efforts toward standardizing next-generation networking technologies, aligning with ongoing work within the IETF around HTTP/3 and QUIC specifications.

## Notable For
- Being one of the earliest and most mature implementations of QUIC in **Go**
- Supporting **multiple releases** across two years (from v0.5.0 in April 2017 to v0.11.1 in April 2019), indicating active development
- Integration with **Travis CI**, ensuring consistent testing and reliability
- Providing comprehensive **public API documentation** hosted at [https://quic-go.net/docs/](https://quic-go.net/docs/)
- Serving as a foundational component for other projects requiring QUIC functionality in Go-based systems

## Body

### Overview
quic-go is an open-source library that implements the **QUIC transport protocol** using the **Go programming language**. It provides tools for developers to build applications that benefit from QUIC's improvements over older protocols like TCP and TLS.

### Development & Licensing
The project is licensed under the permissive **MIT License**, allowing broad reuse in both open-source and commercial contexts. Its source code is publicly hosted on GitHub at [https://github.com/lucas-clemente/quic-go](https://github.com/lucas-clemente/quic-go), where it has been actively developed since at least 2017.

### Version History
Below are selected key releases showing evolution and maturity:

| Version | Release Date |
|---------|--------------|
| v0.5.0  | 2017-04-12   |
| v0.6.0  | 2017-12-12   |
| v0.7.0  | 2018-02-03   |
| v0.8.0  | 2018-06-27   |
| v0.9.0  | 2018-08-16   |
| v0.10.0 | 2018-08-28   |
| v0.10.1 | 2019-01-17   |
| v0.10.2 | 2019-05-31   |
| v0.11.0 | 2019-04-12   |
| v0.11.1 | 2019-04-12   |

These frequent updates indicate sustained maintenance and feature enhancements during its initial years.

### Technical Features
quic-go offers several core capabilities aligned with the goals of the QUIC specification:
- Low-latency handshake mechanisms
- Built-in encryption at the transport layer
- Multiplexing of streams to avoid head-of-line blocking
- Loss recovery and congestion control optimized for modern networks

It integrates well with existing Go toolchains and follows idiomatic practices for modularity and extensibility.

### Quality Assurance
To ensure stability and correctness, the project employs **continuous integration** using **Travis CI**, configured via `.travis.yml`. Automated tests help maintain compatibility and prevent regressions between commits.

### Community & Support
Users can access detailed documentation at [https://quic-go.net/docs/](https://quic-go.net/docs/) and report bugs or request features through the integrated GitHub issue tracker: [https://github.com/lucas-clemente/quic-go/issues](https://github.com/lucas-clemente/quic-go/issues). These resources make it accessible for newcomers while supporting advanced customization needs.

## References

1. [Source](https://api.github.com/repos/lucas-clemente/quic-go)
2. [Release 0.5.0. 2017](https://github.com/lucas-clemente/quic-go/releases/tag/v0.5.0)
3. [Release 0.6.0. 2017](https://github.com/lucas-clemente/quic-go/releases/tag/v0.6.0)
4. [Release 0.7.0. 2018](https://github.com/lucas-clemente/quic-go/releases/tag/v0.7.0)
5. [Release 0.8.0. 2018](https://github.com/lucas-clemente/quic-go/releases/tag/v0.8.0)
6. [Release 0.9.0. 2018](https://github.com/lucas-clemente/quic-go/releases/tag/v0.9.0)
7. [Release 0.10.0. 2018](https://github.com/lucas-clemente/quic-go/releases/tag/v0.10.0)
8. [Release 0.10.1. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.10.1)
9. [Release 0.10.2. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.10.2)
10. [Release 0.11.0. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.11.0)
11. [Release 0.11.1. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.11.1)
12. [Release 0.11.2. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.11.2)
13. [Release 0.12.0. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.12.0)
14. [Release 0.13.0. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.13.0)
15. [Release 0.13.1. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.13.1)
16. [Release 0.14.0. 2019](https://github.com/lucas-clemente/quic-go/releases/tag/v0.14.0)
17. [Release 0.17.0. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.17.0)
18. [Release 0.17.1. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.17.1)
19. [Release 0.17.2. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.17.2)
20. [Release 0.17.3. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.17.3)
21. [Release 0.18.0. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.18.0)
22. [Release 0.18.1. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.18.1)
23. [Release 0.19.0. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.19.0)
24. [Release 0.19.2. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.19.2)
25. [Release 0.19.3. 2020](https://github.com/lucas-clemente/quic-go/releases/tag/v0.19.3)
26. [Release 0.20.0. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.20.0)
27. [Release 0.20.1. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.20.1)
28. [Release 0.21.0. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.21.0)
29. [Release 0.21.1. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.21.1)
30. [Release 0.21.2. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.21.2)
31. [Release 0.22.0. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.22.0)
32. [Release 0.22.1. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.22.1)
33. [Release 0.23.0. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.23.0)
34. [Release 0.24.0. 2021](https://github.com/lucas-clemente/quic-go/releases/tag/v0.24.0)
35. [Release 0.25.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.25.0)
36. [Release 0.26.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.26.0)
37. [Release 0.27.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.27.0)
38. [Release 0.27.1. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.27.1)
39. [Release 0.27.2. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.27.2)
40. [Release 0.28.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.28.0)
41. [Release 0.28.1. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.28.1)
42. [Release 0.29.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.29.0)
43. [Release 0.29.1. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.29.1)
44. [Release 0.29.2. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.29.2)
45. [Release 0.30.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.30.0)
46. [Release 0.31.0. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.31.0)
47. [Release 0.31.1. 2022](https://github.com/lucas-clemente/quic-go/releases/tag/v0.31.1)
48. [Release 0.32.0. 2023](https://github.com/quic-go/quic-go/releases/tag/v0.32.0)
49. [Release 0.33.0. 2023](https://github.com/quic-go/quic-go/releases/tag/v0.33.0)
50. [Release 0.34.0. 2023](https://github.com/quic-go/quic-go/releases/tag/v0.34.0)