These libraries implement Unpoly's optional server protocol for a specific language or framework, so your backend can inspect and manipulate Unpoly's rendering without handling raw HTTP headers itself.
All of them are optional. See Server protocol for what the protocol does and when your app benefits from it.
| Language | Framework | Protocol implementation |
|---|---|---|
| Elixir | Plug (Phoenix, …) | ex_unpoly |
| Groovy | Grace (Grails) | grace-unpoly |
| Node.js | AdonisJS | adonis-unpoly |
| PHP | Middleware (Laravel, Symfony, …) | php-unpoly |
| Python | Framework-agnostic (Django, Starlette, …) | unpoly |
| Python | Django | django-unpoly |
| Python | Django | unpoly_django |
| Ruby | Ruby on Rails | unpoly-rails |
| Ruby | Roda | roda-unpoly |
| Ruby | Rack (Hanami, Padrino, Sinatra) | rack-unpoly |
| Rust | Axum | unpoly |
If you have discovered a new implementation, please edit this page on GitHub and send a pull request.
Tip Your coding agent can search these docs locally with the Unpoly agent skill