A low-level HTTP and WebSocket server library for R, built on libuv and http-parser.
httpuv is an HTTP and WebSocket server library for R that provides low-level socket and protocol support for handling web requests directly within the R environment. It solves the problem of building performant, real-time web servers and applications in R by leveraging a multithreaded architecture and robust C libraries.
R developers and package authors who need to create custom web servers, real-time applications, or foundational layers for higher-level web frameworks in R.
Developers choose httpuv for its reliable, low-level performance, multithreaded design that prevents blocking, and its role as the backbone for many popular R web frameworks, offering direct control over HTTP and WebSocket protocols.
HTTP and WebSocket server package for R
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Separates I/O handling from R callbacks using libuv, enabling non-blocking operations like static file serving without impacting R performance, as highlighted in the static paths section.
Built on proven C libraries (libuv and http-parser) by Joyent, ensuring reliable HTTP and WebSocket protocol support for stable server operations.
Provides direct access to HTTP requests and WebSocket events via customizable callbacks, allowing developers to implement custom server logic and real-time applications, as shown in the basic usage examples.
Serves files from disk in the I/O thread without blocking R, demonstrated through the staticPaths feature that handles file requests independently.
Requires manual handling of low-level HTTP details; no built-in routing, templating, or middleware, making it challenging for developers accustomed to higher-level frameworks.
Installation can be complex on systems without C toolchains or libuv packages, and building from source if libuv isn't found may fail on some platforms, as noted in the installing section.
Lacks conveniences like authentication, session management, or database integration, forcing users to build custom solutions for common web tasks, which increases development time.