A QUIC protocol library for Erlang and Elixir, providing NIF bindings to Microsoft's msquic implementation.
Quicer is an Erlang/Elixir library that implements the QUIC transport protocol as a NIF (Native Implemented Function) binding to Microsoft's msquic library. It enables high-performance, low-latency network communication for applications built on the BEAM VM, bringing modern transport capabilities like multiplexed streams and TLS 1.3 to the Erlang ecosystem.
Erlang and Elixir developers building scalable networked systems that require modern transport protocols, such as those creating real-time communication services, low-latency APIs, or applications needing improved congestion control and multiplexing over traditional TCP.
Developers choose Quicer to leverage the performance benefits of QUIC within the BEAM VM while maintaining Erlang's reliability and concurrency model, and it uniquely provides a production-grade binding to Microsoft's msquic library for cross-platform support.
QUIC protocol for Erlang & Elixir
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements QUIC with features like multiplexed streams and TLS 1.3, enabling low-latency communication as shown in the ping-pong server and client examples.
Leverages Microsoft's msquic library via NIF, providing a robust foundation with performance optimizations and cross-platform compatibility on Linux and macOS.
Includes logging to stdout and TLS secret logging for Wireshark, facilitating traffic analysis and troubleshooting, as detailed in the troubleshooting section.
Provides clear APIs for handling bidirectional and unidirectional streams, demonstrated in examples for building scalable networked systems.
Marked as 'Preview', indicating it may not be stable for production, with potential for breaking changes or undiscovered bugs that could affect reliability.
Requires OTP25+, rebar3, and cmake3.16+, adding significant setup overhead and dependency management compared to simpler Erlang libraries.
Windows support is experimental and 'Help Needed', limiting cross-platform development and requiring community effort for full compatibility.