Package: drogonR 0.1.8

drogonR: High-Performance HTTP Server for R via 'Drogon'

Provides an 'R' interface to the 'Drogon' high-performance 'C++' 'HTTP' server framework (<https://github.com/drogonframework/drogon>). Offers a 'plumber'-style application programming interface for building 'REST' services from 'R' with substantially higher throughput, including streaming responses and full-duplex 'WebSocket' endpoints.

Authors:Yuri Baramykov [aut, cre], An Tao [ctb, cph], Shuo Chen [ctb, cph], Baptiste Lepilleur [ctb, cph], Christopher Dunn [ctb], JsonCpp Contributors [ctb, cph], Bert Belder [ctb, cph], mman-win32 contributors [ctb, cph]

drogonR_0.1.8.tar.gz
drogonR_0.1.8.zip(r-4.7)drogonR_0.1.8.zip(r-4.6)drogonR_0.1.8.zip(r-4.5)
drogonR_0.1.8.tgz(r-4.6-x86_64)drogonR_0.1.8.tgz(r-4.6-arm64)drogonR_0.1.8.tgz(r-4.5-x86_64)drogonR_0.1.8.tgz(r-4.5-arm64)
drogonR_0.1.8.tar.gz(r-4.7-arm64)drogonR_0.1.8.tar.gz(r-4.7-x86_64)drogonR_0.1.8.tar.gz(r-4.6-arm64)drogonR_0.1.8.tar.gz(r-4.6-x86_64)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
drogonR/json (API)

# Install 'drogonR' in R:
install.packages('drogonR', repos = c('https://zabis13.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/zabis13/drogonr/issues

Uses libs:
  • openssl– Secure Sockets Layer toolkit
  • zlib– Compression library
  • c++– GNU Standard C++ Library v3

On CRAN:

Conda:

opensslzlibcpp

6.08 score 10 stars 4 scripts 473 downloads 42 exports 7 dependencies

Last updated from:67a092863b. Checks:12 OK, 1 FAIL. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK296
linux-devel-x86_64OK260
source / vignettesOK480
linux-release-arm64OK281
linux-release-x86_64OK290
macos-release-arm64OK185
macos-release-x86_64OK737
macos-oldrel-arm64OK246
macos-oldrel-x86_64OK659
windows-develOK532
windows-releaseOK533
windows-oldrelOK478
wasm-releaseFAIL152

Exports:dr_appdr_bodydr_deletedr_delete_cppdr_filedr_getdr_get_cppdr_get_cpp_streamdr_headerdr_htmldr_jsondr_on_errordr_postdr_post_cppdr_post_cpp_streamdr_putdr_put_cppdr_querydr_rate_limitdr_redirectdr_responsedr_runningdr_servedr_staticdr_statusdr_stopdr_streamdr_stream_ssedr_textdr_usedr_wsdr_ws_broadcastdr_ws_client_closedr_ws_client_senddr_ws_closedr_ws_connectdr_ws_cppdr_ws_joindr_ws_leavedr_ws_senddr_ws_shutdownpr_run

Dependencies:jsonlitelaterprocessxpsR6Rcpprlang

drogonR — Three Ways to Serve HTTP from R
Choosing a variant | Performance snapshot | A minimal example of each | Where to go next

Last update: 2026-05-03
Started: 2026-05-03

Rate limiting
Quick start | How it works | Algorithms (type =) | Scope (scope =) | Prefix matching (routes =) | Per-IP limiting | Operational notes

Last update: 2026-05-03
Started: 2026-05-03

Streaming responses (chunked HTTP, SSE)
How it works | dr_stream() — the base API | dr_stream_sse() — Server-Sent Events | Threading: keep each pump short | Cancellation contract | Errors inside next_chunk() | Middleware does not wrap individual chunks | Native (C / C++) streaming | Caveats

Last update: 2026-05-03
Started: 2026-05-03

Variant 1 — C++ Shared Path (dr_*_cpp)
The handler ABI | A complete example | Threading rule (critical) | Memory ownership cheat-sheet | Where this fits

Last update: 2026-05-03
Started: 2026-05-03

Variant 2 — drogonR Native API (dr_app / dr_get / …)
Building an app | The req object | Building responses | Middleware | Static files | Starting and stopping the server | When to reach for the other variants

Last update: 2026-05-03
Started: 2026-05-03

Variant 3 — Plumber Drop-In (drogonR::pr_run)
The one-line swap | What the shim supports | What the shim rejects | A minimal end-to-end example | When to migrate to native

Last update: 2026-05-03
Started: 2026-05-03

Readme and manuals

Help Manual

Help pageTopics
Create a drogonR applicationdr_app
Read the request bodydr_body
Build a file responsedr_file
Read a request headerdr_header
Build an HTML responsedr_html
Build a JSON responsedr_json
Register a custom error handlerdr_on_error
Read query-string parametersdr_query
Apply a rate limit to one or more routesdr_rate_limit
Build a redirect responsedr_redirect
Build an HTTP responsedr_response
Register HTTP route handlersdr_delete dr_get dr_post dr_put dr_routes
Register a native C / C++ route handlerdr_delete_cpp dr_get_cpp dr_post_cpp dr_put_cpp dr_routes_cpp
Register a streaming native (R-bypass) handlerdr_get_cpp_stream dr_post_cpp_stream dr_routes_cpp_stream
Is the drogonR server currently running?dr_running
Start the HTTP serverdr_serve
Mount a directory as static filesdr_static
Status of forked worker processesdr_status
Stop the HTTP serverdr_stop
Open a streaming HTTP responsedr_stream
Open a Server-Sent-Events streaming responsedr_stream_sse
Build a plain-text responsedr_text
Register middlewaredr_use
Register a WebSocket endpointdr_ws
Broadcast a message to every connection in a roomdr_ws_broadcast
Close a client WebSocket connectiondr_ws_client_close
Send a message on a client WebSocket connectiondr_ws_client_send
Close a WebSocket connectiondr_ws_close
Connect to an external WebSocket serverdr_ws_connect
Register a C++ (R-bypass) WebSocket endpointdr_ws_cpp
Add a connection to a broadcast roomdr_ws_join
Remove a connection from a broadcast roomdr_ws_leave
Send a message on a WebSocket connectiondr_ws_send
Shut down the WebSocket client subsystemdr_ws_shutdown
Run a plumber router under drogonR (drop-in shim)pr_run