{"id":18485440,"url":"https://github.com/softinstigate/restheart","last_synced_at":"2026-02-03T21:06:05.200Z","repository":{"id":23361591,"uuid":"26722690","full_name":"SoftInstigate/restheart","owner":"SoftInstigate","description":" Virtual Threads Powered API Framework with Instant REST, GraphQL and Websockets APIs for MongoDB","archived":false,"fork":false,"pushed_at":"2025-05-14T07:42:29.000Z","size":44030,"stargazers_count":834,"open_issues_count":8,"forks_count":170,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-05-15T17:05:48.163Z","etag":null,"topics":["data-persistence","database","docker","framework","graphql","java","microservice","microservices","mongodb","nosql","rest","rest-api","restheart","webservice","websockets"],"latest_commit_sha":null,"homepage":"https://restheart.org","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SoftInstigate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security/LICENSE.txt","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":["SoftInstigate"]}},"created_at":"2014-11-16T18:01:01.000Z","updated_at":"2025-05-15T16:01:19.000Z","dependencies_parsed_at":"2023-11-13T13:41:44.979Z","dependency_job_id":"9eb73f6e-bda8-41d0-8a8c-3e43d6e47b69","html_url":"https://github.com/SoftInstigate/restheart","commit_stats":{"total_commits":4241,"total_committers":41,"mean_commits":103.4390243902439,"dds":0.365008252770573,"last_synced_commit":"06638ecd59118dcbb8055ceb967dc3bb81bd5d67"},"previous_names":[],"tags_count":240,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftInstigate%2Frestheart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftInstigate%2Frestheart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftInstigate%2Frestheart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SoftInstigate%2Frestheart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SoftInstigate","download_url":"https://codeload.github.com/SoftInstigate/restheart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384988,"owners_count":22062422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-persistence","database","docker","framework","graphql","java","microservice","microservices","mongodb","nosql","rest","rest-api","restheart","webservice","websockets"],"created_at":"2024-11-06T12:45:14.165Z","updated_at":"2026-02-03T21:06:05.187Z","avatar_url":"https://github.com/SoftInstigate.png","language":"Java","readme":"# \u003cimg src=\"https://cloud.restheart.com/assets/img/restheart%20logo.svg\" alt=\"RESTHeart logo\" width=\"32px\" height=\"auto\" /\u003e RESTHeart\n\n**Open Source REST API \u0026 GraphQL Server — Instant backend APIs with low code required.**\n\n[![GitHub last commit](https://img.shields.io/github/last-commit/softinstigate/restheart)](https://github.com/SoftInstigate/restheart/commits/master)\n[![Build snapshot release](https://github.com/SoftInstigate/restheart/actions/workflows/branch.yml/badge.svg)](https://github.com/SoftInstigate/restheart/actions/workflows/branch.yml)\n[![Github stars](https://img.shields.io/github/stars/SoftInstigate/restheart?label=Github%20Stars)](https://github.com/SoftInstigate/restheart)\n[![Maven Central Version](https://img.shields.io/maven-central/v/org.restheart/restheart)](https://central.sonatype.com/namespace/org.restheart)\n[![javadoc](https://javadoc.io/badge2/org.restheart/restheart-commons/javadoc.svg)](https://javadoc.io/doc/org.restheart/restheart-commons)\n[![Docker Pulls](https://img.shields.io/docker/pulls/softinstigate/restheart.svg?maxAge=2592000)](https://hub.docker.com/r/softinstigate/restheart/)\n[![Join the chat on Slack](https://img.shields.io/badge/chat-on%20slack-orange)](https://join.slack.com/t/restheart/shared_invite/zt-1olrhtoq8-5DdYLBWYDonFGEALhmgSXQ)\n\n---\n\n## What is RESTHeart?\n\nRESTHeart is an **open-source Java server** that auto-generates REST, GraphQL, and WebSocket APIs from your database collections.\n\n**Core capabilities:**\n\n- **REST API** — Full CRUD operations, aggregations, filtering, sorting, pagination\n- **GraphQL** — Create GraphQL APIs with schema definitions and MongoDB mappings\n- **WebSocket** — Real-time change streams and data synchronization\n- **Authentication** — JWT, OAuth2, LDAP, and MongoDB-based user management\n- **Authorization** — Role-based access control (RBAC) and declarative security policies\n\n**No code required** for standard database operations. Write plugins in Java, JavaScript, or Python only when you need custom business logic.\n\n**Database support:** MongoDB, MongoDB Atlas, Percona Server, AWS DocumentDB, Azure Cosmos DB, FerretDB.\n\n### Example\n\nQuery MongoDB directly via HTTP:\n\n```javascript\nconst url = encodeURI('https://demo.restheart.org/messages?filter={\"from\":\"Bob\"}\u0026pagesize=1');\n\nfetch(url)\n  .then(response =\u003e response.json())\n  .then(json =\u003e console.log(JSON.stringify(json, null, 2)));\n```\n\n📄 **Complete documentation** available at \u003chttps://restheart.org/docs/\u003e\n\n---\n\n## Architecture \u0026 Features\n\n| Feature | Description |\n|-------------|--------------|\n| 🧩 **Automatic API Generation** | REST APIs auto-generated from MongoDB collections — no manual endpoint definition |\n| 📊 **GraphQL Support** | Build GraphQL APIs with schema definitions and MongoDB query mappings |\n| ⚙️ **Plugin System** | Extend via Services, Interceptors, Initializers, and Providers — hot-reload support |\n| 🔐 **Security** | Pluggable authentication (JWT, OAuth2, LDAP, custom) and ACL-based authorization |\n| 💬 **WebSockets** | Native change stream support with automatic client synchronization |\n| 🚀 **Performance** | Undertow NIO server with Java 21 Virtual Threads — 10K+ concurrent connections |\n| 🌐 **Polyglot** | Java, Kotlin native support — JavaScript, TypeScript, Python via GraalVM |\n| 📈 **Observability** | Prometheus metrics, health endpoints, request/response logging |\n| 🧰 **Developer Tools** | CLI for plugin development, Docker images, GraalVM native compilation |\n| ☁️ **Deployment** | Stateless architecture — runs on VMs, containers, Kubernetes, or as native binary |\n\n---\n\n## Use Cases\n\n- **Rapid API development** — Skip boilerplate CRUD code, focus on business logic\n- **Mobile/web backends** — REST and GraphQL APIs without Express.js/Fastify setup  \n- **Real-time applications** — WebSocket support for chat, notifications, live updates\n- **Legacy MongoDB modernization** — Add modern APIs to existing databases without data migration\n- **MongoDB Data API replacement** — Drop-in alternative for the deprecated MongoDB Atlas Data API with enhanced features\n- **Prototyping \u0026 MVPs** — Functional backend in minutes for proof-of-concepts\n- **Microservices** — Lightweight, stateless architecture with built-in API gateway features\n- **IoT data collection** — Efficient resource usage, fast startup, edge deployment ready\n- **PostgreSQL with MongoDB API** — Use MongoDB query syntax with PostgreSQL via FerretDB translation layer\n\n---\n\n## MongoDB Data API Replacement\n\n**MongoDB deprecated its Atlas Data API in September 2024.** RESTHeart is a powerful, self-hosted alternative that provides everything the Data API offered — and much more.\n\n### Why Choose RESTHeart as Your Data API Alternative?\n\n| Feature | MongoDB Data API | RESTHeart |\n|---------|------------------|-----------|\n| **REST API** | ✅ Basic CRUD | ✅ Full CRUD + aggregations |\n| **GraphQL** | ❌ | ✅ With schema definitions |\n| **WebSocket** | ❌ | ✅ Change streams |\n| **Hosting** | Atlas only | Self-hosted or cloud |\n| **Authentication** | API keys | JWT, OAuth2, LDAP, custom |\n| **Real-time** | ❌ | ✅ Native support |\n| **Extensibility** | ❌ | ✅ Plugin system |\n| **Status** | Deprecated | Active development |\n\n### Migration Benefits\n\n- **No vendor lock-in** — Works with MongoDB Atlas, self-hosted MongoDB, or compatible databases\n- **Enhanced features** — GraphQL support, WebSockets, advanced filtering, aggregation pipelines\n- **Better security** — Multiple authentication mechanisms, fine-grained authorization\n- **Cost control** — Self-hosted option eliminates per-request pricing\n- **Future-proof** — Active open-source community and commercial support\n\n📖 **Read more:** [MongoDB Deprecates Data API - What's Next?](https://www.softinstigate.com/en/blog/posts/mongodb-deprecates-data-api/)\n\n---\n\n## PostgreSQL Support via FerretDB\n\nWhile RESTHeart is MongoDB-native, you can use it with **PostgreSQL** through [FerretDB](https://www.ferretdb.com/) — an open-source MongoDB-compatible database that uses PostgreSQL as its storage engine.\n\n### How It Works\n\n```\nApplication → RESTHeart → FerretDB → PostgreSQL\n             (MongoDB API) (Translation Layer) (Storage)\n```\n\nFerretDB translates MongoDB wire protocol commands to SQL queries, allowing RESTHeart to:\n\n- Provide MongoDB-style REST and GraphQL APIs\n- Use MongoDB query syntax (filters, projections, aggregations)\n- Store data in PostgreSQL tables\n- Leverage PostgreSQL's ACID guarantees and ecosystem\n\n### When to Use FerretDB with RESTHeart\n\n✅ **Good for:**\n- Teams familiar with MongoDB wanting PostgreSQL's reliability\n- Organizations with PostgreSQL expertise and infrastructure\n- Projects requiring PostgreSQL-specific features (full-text search, PostGIS)\n- Gradual migration from MongoDB to PostgreSQL\n\n⚠️ **Limitations:**\n- Some advanced MongoDB features not yet supported (check [FerretDB compatibility](https://docs.ferretdb.io/reference/supported-commands/))\n- Performance characteristics differ from native MongoDB\n- Change streams support depends on FerretDB version\n\n📖 **Complete tutorial:** [Getting Started with FerretDB and RESTHeart](https://www.softinstigate.com/en/blog/posts/ferretdb-tutorial/)\n\n---\n\n## Comparison with Similar Tools\n\n| Feature | RESTHeart | Hasura | Prisma | PostGraphile | Parse |\n|---------|-----------|--------|--------|--------------|-------|\n| **Target Database** | MongoDB + compatible | PostgreSQL, MySQL, SQL Server, BigQuery | PostgreSQL, MySQL, SQL Server, SQLite, MongoDB*, CockroachDB | PostgreSQL | MongoDB, PostgreSQL |\n| **REST API** | ✅ Auto-generated | ⚠️ RESTified endpoints (manual setup) | ❌ | ✅ Auto-generated | ✅ Auto-generated |\n| **GraphQL** | ✅ With schema + mappings | ✅ Auto-generated | ⚠️ Via Nexus/Pothos | ✅ Auto-generated | ✅ Auto-generated |\n| **WebSocket/Subscriptions** | ✅ Native change streams | ✅ GraphQL subscriptions | ❌ | ⚠️ Plugin-based | ✅ Live Queries |\n| **Built-in Auth** | ✅ JWT, OAuth2, LDAP | ✅ JWT, webhooks | ❌ | ⚠️ Postgres RLS | ✅ Built-in user system, OAuth |\n| **Architecture** | API server (zero-code) | API server (zero-code) | ORM/Query builder | API server (zero-code) | Backend-as-a-Service |\n| **Primary Use Case** | Instant APIs for MongoDB | Instant APIs for PostgreSQL | Type-safe database client | Instant APIs for PostgreSQL | Mobile/web app backend |\n| **Language** | Java 21 | Haskell (core), TypeScript | TypeScript/Node.js | TypeScript/Node.js | Node.js |\n| **Runtime** | JVM / GraalVM Native | Binary executable | Node.js (library) | Node.js | Node.js |\n| **License** | AGPL / Commercial | Apache 2.0 | Apache 2.0 | MIT | Apache 2.0 |\n\n_*Prisma's MongoDB support has limitations: no migrations tool, limited aggregation pipeline support, performance concerns documented in GitHub issues. It's primarily designed for relational databases._\n\n**Key differences:**\n\n- **RESTHeart** provides auto-generated REST APIs and configurable GraphQL APIs (with schema definitions); Hasura and PostGraphile focus on auto-generated GraphQL with optional REST endpoints\n- **Hasura's REST endpoints** are \"RESTified\" - you manually create REST wrappers for GraphQL queries, not auto-generated from database schema\n- **Prisma** is fundamentally different - it's a database client/ORM library, not a standalone API server. You use it to build your own API server\n- **Parse** is a full Backend-as-a-Service (BaaS) platform with additional features like push notifications, file storage, and cloud functions\n- **PostGraphile** is PostgreSQL-exclusive; RESTHeart is MongoDB-exclusive (with PostgreSQL via FerretDB); Hasura supports multiple SQL databases; Parse supports MongoDB and PostgreSQL\n- RESTHeart uses Java Virtual Threads for high-concurrency workloads; others use Node.js async or compiled binaries\n\n---\n\n## Quick Start\n\nStart MongoDB and RESTHeart with Docker Compose:\n\n```bash\ncurl https://raw.githubusercontent.com/SoftInstigate/restheart/master/docker-compose.yml \\\n  --output docker-compose.yml \u0026\u0026 docker compose up --pull=always --attach restheart\n```\n\nTest the deployment:\n\n```bash\ncurl localhost:8080/ping\n```\n\nRESTHeart is now running. APIs are available at `http://localhost:8080/`.\n\n---\n\n## API Examples\n\n### REST API\n\n```bash\n# Query with filters\ncurl 'http://localhost:8080/people?filter={\"age\":{\"$gt\":30}}'\n\n# Pagination and sorting\ncurl 'http://localhost:8080/people?pagesize=10\u0026page=1\u0026sort={\"name\":1}'\n\n# Projection (select specific fields)\ncurl 'http://localhost:8080/people?keys={\"name\":1,\"age\":1}'\n```\n\n### GraphQL API\n\n\u003e **Note:** GraphQL APIs require creating a GraphQL app definition with schema and mappings. See the [GraphQL documentation](https://restheart.org/docs/mongodb-graphql/getting-started) for setup instructions.\n\n```graphql\n{\n  people(filter: \"{'age': {'$gt': 30}}\", pagesize: 5, sort: NAME_ASC) {\n    _id\n    name\n    age\n    email\n  }\n}\n```\n\n### WebSocket API\n\n```javascript\n// Connect to change streams\nconst ws = new WebSocket(\"wss://demo.restheart.org/ws/messages\");\n\n// Receive updates when data changes\nws.onmessage = e =\u003e {\n  const update = JSON.parse(e.data);\n  console.log(\"Update:\", update);\n};\n\n// Optional: filter updates\nws.send(JSON.stringify({ \n  filter: { from: \"Alice\" } \n}));\n```\n\n---\n\n## Configuration\n\nConfiguration via YAML file or `RHO` environment variable.\n\n**Key areas:**\n\n- 🔌 **MongoDB Connection** — Connection strings, replica sets, authentication\n- 👥 **User Management** — Define users, roles, and permissions\n- 🔐 **Authentication** — JWT, OAuth2, LDAP, custom mechanisms\n- 🛡️ **Authorization** — ACL rules, role-based access control\n- 🔧 **Plugin System** — Register and configure custom extensions\n- 📊 **Monitoring** — Metrics collection, logging levels, health checks\n\nExample:\n\n```yaml\nmongo-uri: mongodb://localhost:27017\n\nauth:\n  mechanism: basicAuth\n  users:\n    - userid: admin\n      password: secret\n      roles: [admin]\n\ncors:\n  enabled: true\n  allow-origin: \"*\"\n```\n\n📖 See the [Configuration Guide](https://restheart.org/docs/configuration) for complete details.\n\n---\n\n## Plugin Architecture\n\nExtend RESTHeart via plugins when you need custom logic beyond generated APIs.\n\n**Plugin Types:**\n\n- **Services** — Custom REST endpoints and APIs\n- **Interceptors** — Modify requests/responses, add validation, logging\n- **Initializers** — Run code at startup (database setup, caching)\n- **Providers** — Dependency injection for shared components\n\n**Supported Languages:**\n\n- Java, Kotlin (native JVM support)\n- JavaScript, TypeScript (via GraalVM)\n- Python (via GraalVM)\n\n### Example Plugin (Java)\n\n```java\n@RegisterPlugin(\n    name = \"greetings\",\n    description = \"A simple greeting service\"\n)\npublic class GreeterService implements JsonService {\n    @Override\n    public void handle(JsonRequest req, JsonResponse res) {\n        res.setContent(object()\n            .put(\"message\", \"Hello World!\")\n            .put(\"timestamp\", Instant.now()));\n    }\n}\n```\n\n### Example Plugin (JavaScript)\n\n```javascript\nexport const options = {\n    name: \"greetings\",\n    description: \"A simple greeting service\"\n}\n\nexport function handle(request, response) {\n    response.setContent(JSON.stringify({\n        message: 'Hello World!',\n        timestamp: new Date().toISOString()\n    }));\n    response.setContentTypeAsJson();\n}\n```\n\n🔧 Use [restheart-cli](https://github.com/SoftInstigate/restheart-cli) for plugin scaffolding, testing, and hot-reload during development.\n\n---\n\n## Deployment\n\n### Docker\n\n```bash\ndocker pull softinstigate/restheart:latest\n\ndocker run -p 8080:8080 \\\n  -v ./restheart.yml:/opt/restheart/etc/restheart.yml \\\n  softinstigate/restheart\n```\n\n### Kubernetes\n\nStateless architecture supports horizontal scaling. Configure with ConfigMaps and Secrets.\n\n### GraalVM Native Image\n\nCompile to native binary for faster startup (\u003c1s) and lower memory footprint (~50MB):\n\n```bash\n./mvnw clean package -Pnative\n```\n\nIdeal for serverless deployments (AWS Lambda, Cloud Run) and edge computing.\n\n### RESTHeart Cloud\n\nManaged service alternative: [cloud.restheart.com](https://cloud.restheart.com)\n\n- Fully managed infrastructure\n- Automatic scaling\n- Monitoring and logging\n- Enterprise SLAs\n\n---\n\n## Database Compatibility\n\n| Database | Support Level | Notes |\n|----------|---------------|-------|\n| ✅ **MongoDB** | Full | All versions 3.6+ |\n| ✅ **MongoDB Atlas** | Full | Cloud-native support |\n| ✅ **Percona Server** | Full | Drop-in MongoDB replacement |\n| ⚙️ **FerretDB** | Partial | PostgreSQL-backed MongoDB alternative |\n| ⚙️ **AWS DocumentDB** | Partial | Most features work, some MongoDB 4.0+ features missing |\n| ⚙️ **Azure Cosmos DB** | Partial | MongoDB API compatibility layer |\n\n_Compatibility depends on MongoDB wire protocol implementation._\n\n---\n\n## FAQ\n\n### How does RESTHeart compare to Express.js + Mongoose?\n\nRESTHeart auto-generates APIs from MongoDB collections, eliminating the need for:\n\n- Manual route definitions and controllers\n- Request validation and error handling middleware\n- Authentication/authorization setup\n- WebSocket server configuration\n\nYou only write code for custom business logic via plugins.\n\n### Can RESTHeart replace the deprecated MongoDB Data API?\n\nYes. RESTHeart is an excellent replacement for the MongoDB Atlas Data API (deprecated in September 2024). It provides:\n\n- **Full MongoDB REST API** with filtering, sorting, pagination, and aggregations\n- **GraphQL support** with schema definitions and MongoDB mappings\n- **WebSocket/real-time** capabilities via change streams\n- **Self-hosted control** — no vendor lock-in\n- **Enhanced security** with JWT, OAuth2, and custom authentication\n- **Plugin extensibility** for custom business logic\n\nMigration is straightforward since RESTHeart uses standard MongoDB connections and can connect to MongoDB Atlas or any MongoDB instance.\n\n### How does RESTHeart differ from Hasura or Prisma?\n\n- **Hasura/PostGraphile:** PostgreSQL-focused, auto-generated GraphQL APIs\n- **Prisma:** ORM/query builder, not a standalone API server\n- **RESTHeart:** MongoDB-native, auto-generates REST APIs, GraphQL APIs require schema definitions\n\n### Does RESTHeart scale for production?\n\nYes. Architecture features:\n\n- Stateless design enables horizontal scaling\n- Java Virtual Threads handle 10K+ concurrent connections\n- Used in production by Fortune 500 companies\n- Clustering and load balancing support\n\n### Do I need to write code?\n\nNo, for standard CRUD operations and queries. RESTHeart auto-generates all endpoints.\n\nYes, for custom business logic. Use the plugin system to add:\n\n- Custom validation\n- Business rules\n- Third-party integrations\n- Custom authentication flows\n\n### What's the license?\n\nDual-licensed:\n\n- **AGPL:** Free, requires open-sourcing modifications if distributed\n- **Commercial:** For proprietary applications, same features\n\n### Can I use it with MongoDB Atlas?\n\nYes. RESTHeart connects to any MongoDB instance:\n\n- MongoDB Atlas\n- Self-hosted MongoDB\n- Replica sets and sharded clusters\n- AWS DocumentDB (partial compatibility)\n- Azure Cosmos DB (partial compatibility)\n\n### Can I use RESTHeart with PostgreSQL?\n\nYes, via FerretDB. FerretDB is an open-source MongoDB-compatible database that uses PostgreSQL as its storage engine. It translates MongoDB wire protocol commands to SQL queries, allowing RESTHeart to work with PostgreSQL while maintaining MongoDB's document-oriented API and query language. This is ideal for organizations that want to use PostgreSQL's reliability and ecosystem while providing MongoDB-style APIs to their applications.\n\nSee our [complete FerretDB tutorial](https://www.softinstigate.com/en/blog/posts/ferretdb-tutorial/) for setup instructions.\n\n---\n\n## Community \u0026 Support\n\n- 📄 **[Documentation](https://restheart.org/docs/)** — API reference and guides\n- 🤖 **[Ask Sophia](https://sophia.restheart.com)** — AI documentation assistant\n- 💬 **[Slack](https://join.slack.com/t/restheart/shared_invite/zt-1olrhtoq8-5DdYLBWYDonFGEALhmgSXQ)** — Community chat\n- 🐛 **[GitHub Issues](https://github.com/SoftInstigate/restheart/issues/new)** — Bug reports and feature requests\n- 💡 **[Stack Overflow](https://stackoverflow.com/questions/ask?tags=restheart)** — Tag: `restheart`\n- 📅 **[Book a Demo](https://calendly.com/restheart)** — Technical consultation\n\n---\n\n## Contributing\n\nContributions welcome. RESTHeart is open source (AGPL).\n\n- Report bugs and request features via GitHub Issues\n- Submit pull requests\n- Improve documentation\n- Share use cases\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n---\n\n## License\n\nDual-licensed:\n\n- **AGPL v3** — Open source\n- **Commercial License** — For proprietary applications\n\nSame features in both licenses.\n\nCommercial inquiries: [info@softinstigate.com](mailto:info@softinstigate.com)\n\n---\n\n_Built with ❤️ by [SoftInstigate](https://www.softinstigate.com) | [GitHub](https://github.com/SoftInstigate/restheart) | [Website](https://restheart.org) | [Cloud](https://cloud.restheart.com)_\n","funding_links":["https://github.com/sponsors/SoftInstigate"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftinstigate%2Frestheart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftinstigate%2Frestheart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftinstigate%2Frestheart/lists"}