RESTHeart is a modern Java backend solution enabling REST, GraphQL, and WebSocket APIs. It features a low-code development framework, ready-to-use security, and seamless MongoDB API integration.
✅ Low-Code Backend Foundation: RESTHeart serves as a robust foundation for creating low-code backends, offering flexibility and power for on-premises deployment.
✅ Instant Backend Launch: Developers can swiftly connect RESTHeart to a MongoDB database, enabling the rapid launch of a fully functional backend without extensive coding.
✅ Seamless Integration: It integrates seamlessly with MongoDB, providing a hassle-free connection for data handling and management.
✅ Customizable APIs: RESTHeart empowers developers to create and customize APIs quickly, enabling efficient communication between applications and the backend.
✅ Security and Compliance: Built-in security features ensure robust protection for data and endpoints, meeting compliance standards for sensitive information handling.
✅ Scalability and Performance: Designed for scalability, RESTHeart maintains high performance even with increased data loads, ensuring smooth operations as applications grow.
✅ On-Premises Control: Offers the advantages of on-premises deployment, granting developers full control over the backend infrastructure while maintaining the ease of a low-code approach.
✅ Concurrency: Powered by the new Java 21 Virtual Threads lightweight concurrency model.
✅ Built on Undertow: RESTHeart is built on top of the Undertow web server.
Undertow is a high-performance web server written in Java, known for its flexibility and efficiency. It provides both blocking and non-blocking APIs based on NIO (Non-blocking I/O), making it suitable for a wide range of use cases from lightweight HTTP handlers to full-fledged servlet containers. Notably, Undertow is the default web server for the WildFly application server and replaces JBoss Web in JBoss EAP 7.
(*) Some of these databases might have partial compatibility with MongoDB APIs.
The full documentation is available on restheart.org/docs.
To explore the APIs, start with:
curl https://raw.githubusercontent.com/SoftInstigate/restheart/master/docker-compose.yml \ --output docker-compose.yml \ && docker compose up --pull=always --attach restheart
curl -i localhost:8080/ping HTTP/1.1 200 OK Connection: keep-alive Access-Control-Allow-Origin: * X-Powered-By: restheart.org Access-Control-Allow-Credentials: true Access-Control-Expose-Headers: Location, ETag, Auth-Token, Auth-Token-Valid-Until, Auth-Token-Location, X-Powered-By Content-Type: text/plain Content-Length: 25 Date: Wed, 07 Aug 2024 10:48:23 GMT Greetings from RESTHeart!
restheart.tar.gz or restheart.zip archive to create a restheart folder:.
├── COMM-LICENSE.txt
├── LICENSE.txt
├── plugins
│ ├── restheart-graphql.jar
│ ├── restheart-metrics.jar
│ ├── restheart-mongoclient-provider.jar
│ ├── restheart-mongodb.jar
│ ├── restheart-polyglot.jar
│ └── restheart-security.jar
└── restheart.jar
localhost:27017 and then run RESTHeart with its default configuration:java -jar restheart.jar
RESTHeart offers an SDK for developing custom plugins. A plugin in RESTHeart enhances the API by adding new features and capabilities. RESTHeart supports creating plugins in Java, Kotlin, any language supported by the JVM, JavaScript, or any language supported by GraalVM.
Types of plugins in RESTHeart:
@Inject annotation.Additionally, security plugins can be developed to customize the security layer.
Build the thin JAR:
./mvnw clean package
Check the build version:
java -jar core/target/restheart-core.jar -v RESTHeart Version 8.0.7-SNAPSHOT Build-Time 2024-07-17
To build a fat JAR, add the shade Maven profile:
./mvnw clean package -Pshade
To execute the integration test suite:
./mvnw clean verify
The verify goal starts the RESTHeart process and a MongoDB Docker container before running the integration tests.
To avoid starting the MongoDB Docker container, specify the system property -P-mongodb.
The integration tests use the MongoDB connection string mongodb://127.0.0.1 by default. To use a different connection string, specify the property test-connection-string.
Example of running the integration test suite against an instance of FerretDB on localhost:
# Run FerretDB docker run -d --rm --name ferretdb -p 27017:27017 ghcr.io/ferretdb/all-in-one # Execute the integration tests ./mvnw clean verify -DskipUTs -P-mongodb -Dtest-connection-string="mongodb://username:password@localhost/ferretdb?authMechanism=PLAIN" -Dkarate.options="--tags ~@requires-replica-set"
This example skips tests tagged with requires-replica-set (FerretDB does not support change stream and transactions) and uses -DskipUTs to skip the execution of unit tests.
Snapshot builds are available from sonatype.org.
Docker images of snapshots are also available:
docker pull softinstigate/restheart-snapshot:[commit-short-hash]
To find the commit short hash, use:
git log
The short hash is the first 7 digits of the commit hash. For example, for commit 2108ce033da8a8c0b65afea0b5b478337e44e464, the short hash is 2108ce0 and the Docker pull command is:
bash
docker pull softinstigate/restheart-snapshot:2108ce0
You can support the development of RESTHeart via the GitHub Sponsor program and receive public acknowledgment of your help.
Made with :heart: by SoftInstigate. Follow us on Twitter.


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不 仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

