A feature-rich, RFC-compliant HTTP client for Erlang with connection pooling, pipelining, and SSL support.
ibrowse is an HTTP client library written in Erlang that provides comprehensive HTTP protocol support for building network applications. It handles synchronous and asynchronous requests, connection pooling, pipelining, and secure communications with SSL. The library solves the problem of reliable HTTP communication within Erlang's concurrent ecosystem.
Erlang developers building distributed systems, web services, or applications that require robust HTTP client functionality. It's particularly useful for those needing connection management, proxy support, or asynchronous request handling.
Developers choose ibrowse because it offers a complete, RFC-compliant HTTP implementation specifically designed for Erlang's concurrency model, with features like connection pooling and pipelining that are essential for high-performance applications.
Erlang HTTP client
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Fully RFC2616 compliant with support for multiple HTTP methods including WebDAV, as listed in the features, ensuring reliable web communication.
Allows non-blocking operations by streaming responses to processes, demonstrated in asynchronous request examples for high-concurrency systems.
Features connection pooling and pipelining to improve efficiency, with configurable settings shown in usage examples for optimized performance.
Supports proxy authentication and SOCKS5 protocol with examples, making it suitable for network-aware applications in restricted environments.
Does not support HTTP/2 or HTTP/3, which are increasingly common in contemporary web applications, potentially limiting performance and compatibility.
Requires an Erlang environment and manual start of the library (e.g., ibrowse:start()), adding complexity for integration into non-Erlang projects or quick prototypes.
The README provides basic examples but lacks in-depth tutorials or comprehensive API references, which can hinder onboarding and advanced usage.