Skip to content

Latest commit

 

History

5,759 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RESTHeart logo RESTHeart

GitHub last commit Build snapshot release Github stars Maven Central Version javadoc Docker Pulls Join the chat on Slack CLA assistant


What RESTHeart is

RESTHeart turns a MongoDB database into a REST, GraphQL, WebSocket, and SSE API, with authentication, authorization, and real-time change streams already wired in.

Point it at a MongoDB instance and the API is there: no routes to write, no permission checks to hand-code, no pagination or filtering logic to duplicate across endpoints. Permissions and behavior are configured declaratively. Custom logic goes into plugins, written in Java, Kotlin, JavaScript, or TypeScript, only for what a data API cannot express.

RESTHeart logical architecture

Example

curl "https://demo.restheart.org/messages?filter={\"from\":\"Bob\"}&pagesize=1"

No route was written for /messages. It is a MongoDB collection, and the query parameters (filter, pagesize, sorting) map directly to MongoDB's query language.

Core capabilities

  • REST API: full CRUD, aggregations, filtering, sorting, pagination, generated from the database schema
  • GraphQL: schema-driven mapping to MongoDB queries
  • WebSocket: change streams exposed as real-time data sync
  • SSE: Server-Sent Events for dashboards, IoT feeds, and event streams
  • Authentication and Authorization: JWT, OAuth2, LDAP, MongoDB-based users, ACL rules defined as data, not code
  • Plugin framework: custom services, interceptors, and initializers in Java, Kotlin, JavaScript, or TypeScript, for the logic a declarative API cannot cover
  • Metrics and monitoring: a Prometheus-compatible endpoint plus a browser dashboard at /metrics-ui, tracking request rates, latency percentiles, and HTTP status distribution
  • IoT / MQTT: ingest device telemetry directly into MongoDB (coming soon)

Distributed as a Docker image and a GraalVM native binary. Built on Java 25, Undertow, and virtual threads.

Running it

Fully managed, no installation required, and including Sophia, an MCP server and browser assistant that exposes RESTHeart's docs and plugin API to AI coding assistants such as Claude Code, Cursor, or VS Code:

Try RESTHeart Cloud for free

Or self-hosted, since the core is free and open source:

curl https://raw.githubusercontent.com/SoftInstigate/restheart/master/docker-compose.yml \
  --output docker-compose.yml && docker compose up --attach restheart

curl http://localhost:8080/ping

Full documentation: https://restheart.org/docs/


License

RESTHeart core is licensed under the GNU AGPL v3.

restheart-commons, the Maven artifact plugins depend on to reach the Approved Interfaces, is licensed under the Apache License 2.0. Plugins that depend only on restheart-commons, without linking against RESTHeart's AGPL-licensed core, can be distributed under any license, including proprietary ones. See PLUGIN_EXCEPTION.md for the exact terms of this permission.


Releases

Sponsor this project

Packages

Used by

Contributors

Languages