An R package that converts R functions into web APIs using special code annotations.
Plumber is an R package that transforms R functions into web API endpoints through special code annotations. It allows data scientists and developers to expose R logic as RESTful services without rewriting their code, enabling integration with web applications, mobile apps, and other systems. The package handles routing, parameter parsing, and response serialization automatically based on simple comments in the source code.
R developers and data scientists who need to expose R models, calculations, or data processing logic as web services for integration with other applications or systems.
Plumber offers the simplest way to create APIs from R code by using familiar annotation syntax that doesn't require learning a new framework. Its tight integration with the R ecosystem and multiple deployment options make it the go-to solution for productionizing R logic as web services.
Turn your R code into a web API.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses simple #* comments to define endpoints, making it easy to convert existing R functions into APIs without rewriting code, as demonstrated in the README examples.
Supports multiple input formats including query parameters, form data, and JSON, along with built-in serializers for JSON, PNG, and HTML responses, enhancing adaptability for different use cases.
Leverages familiar R tooling and workflows, allowing data scientists to create APIs directly from their R scripts without leaving their development environment, as highlighted in the philosophy.
Provides integrations with DigitalOcean, Docker, PM2, and Posit Connect, offering straightforward paths to host APIs in various environments, as detailed in the hosting section.
Tied exclusively to R, making it unsuitable for projects using other programming languages or requiring polyglot microservices, limiting its ecosystem reach.
R's interpreted nature and single-threaded execution can lead to scalability issues for high-concurrency API requests, a common criticism not addressed in the README.
Focuses on core API creation without built-in support for advanced features like authentication or rate limiting, requiring additional packages or custom code for production-grade needs.