RushDB transforms how you work with graph data β no schema required, no complex queries, just push your data and go.
π Website β’ π Documentation β’ βοΈ Cloud Platform β’ π Examples
- Instant Setup: Be productive in seconds, not days
- Push Any JSON: Nested objects are automatically normalized into a graph
- Fractal API: Same query syntax everywhere - learn once, use everywhere
- Vector Search: Comprehensive similarity search for AI-powered applications
- Zero Schema Headaches: We handle the data structure so you can focus on building
- Vector Search: Comprehensive vector search with similarity aggregates and query builder support
- Member Management: Complete workspace membership system with invitations and access controls
- Remote Database: Connect to existing Neo4j/Aura databases
- Enhanced Auth: Google OAuth support and improved authorization flows
- Documentation: Reworked docs with clear tutorials and guides
Option A: Use RushDB Cloud (Free Tier Available)
# Sign up and get an API token at app.rushdb.com
# No installation required!
Option B: Self-Host with Docker
docker run -p 3000:3000 \
--name rushdb \
-e NEO4J_URL='neo4j+s://your-instance.neo4j.io' \
-e NEO4J_USERNAME='neo4j' \
-e NEO4J_PASSWORD='password' \
rushdb/platform
from rushdb import RushDB
db = RushDB("your-api-token")
# Push any nested JSON - RushDB normalizes it into a graph
db.records.create_many(
"COMPANY",
{
"name": "Google LLC",
"rating": 4.9,
"DEPARTMENT": [
{
"name": "Research & Development",
"PROJECT": [
{
"name": "Bard AI",
"budget": 1200000000,
"EMPLOYEE": [
{
"name": "Jeff Dean",
"position": "Head of AI Research",
}
],
}
],
}
],
},
)
# Traverse relationships with intuitive nested queries
employees = db.records.find({
"labels": ["EMPLOYEE"],
"where": {
"position": {"$contains": "AI"},
"PROJECT": {"DEPARTMENT": {"COMPANY": {"rating": {"$gte": 4}}}},
},
})
import RushDB from '@rushdb/javascript-sdk';
const db = new RushDB("your-api-token");
// Push data with automatic relationship creation
await db.records.createMany({
label: "COMPANY",
payload: {
name: 'Google LLC',
rating: 4.9,
DEPARTMENT: [{
name: 'Research & Development',
PROJECT: [{
name: 'Bard AI',
EMPLOYEE: [{
name: 'Jeff Dean',
position: 'Head of AI Research',
}]
}]
}]
}
});
// Simple queries that traverse complex relationships
const aiExperts = await db.records.find({
labels: ['EMPLOYEE'],
where: {
position: { $contains: 'AI' },
PROJECT: { DEPARTMENT: { COMPANY: { rating: { $gte: 4 } } } },
},
});
RushDB uses a consistent query structure across all operations:
interface SearchQuery {
labels?: string[]; // Filter by record labels
where?: WhereClause; // Filter by properties and relationships
limit?: number; // Maximum records to return
skip?: number; // Records to skip (pagination)
orderBy?: OrderByClause; // Sorting configuration
aggregate?: AggregateClause; // Data aggregation
}
This approach means:
- Learn Once, Use Everywhere: The same pattern works across records, relationships, labels, and properties
- Predictable API: No surprises as you build more complex features
- Self-Discovering Database: The graph knows its own structure and exposes it consistently
- Perfect for AI & RAG: AI agents can explore and generate queries on-the-fly
- Neo4j: Version
5.25.1
or higher - APOC Plugin: Required and can be installed either via volume mount or auto-install
- Graph Data Science Plugin: Required for advanced features like vector search and aggregations
version: '3.8'
services:
rushdb:
image: rushdb/platform
container_name: rushdb
ports:
- "3000:3000"
environment:
- NEO4J_URL=neo4j+s://your-instance.neo4j.io
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
- RUSHDB_LOGIN=admin
- RUSHDB_PASSWORD=secure-password
View all environment variables
NEO4J_URL
: Connection string for Neo4jNEO4J_USERNAME
: Neo4j username (default:neo4j
)NEO4J_PASSWORD
: Neo4j passwordRUSHDB_PORT
: Server port (default:3000
)RUSHDB_AES_256_ENCRYPTION_KEY
: Encryption key for API tokens (32 chars)RUSHDB_LOGIN
: Admin username (default:admin
)RUSHDB_PASSWORD
: Admin password (default:password
)
Development setup with local Neo4j
version: '3.8'
services:
rushdb:
image: rushdb/platform
container_name: rushdb
depends_on:
neo4j:
condition: service_healthy
ports:
- "3000:3000"
environment:
- NEO4J_URL=bolt://neo4j
- NEO4J_USERNAME=neo4j
- NEO4J_PASSWORD=password
neo4j:
image: neo4j:5.25.1
healthcheck:
test: [ "CMD-SHELL", "wget --no-verbose --tries=1 --spider localhost:7474 || exit 1" ]
interval: 5s
retries: 30
start_period: 10s
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_ACCEPT_LICENSE_AGREEMENT=yes
- NEO4J_AUTH=neo4j/password
- NEO4J_PLUGINS=["apoc", "graph-data-science"]
View available CLI commands
rushdb create-user [email protected] securepassword123
rushdb update-password [email protected] newsecurepassword456
- Quick Tutorial: Create a mini social network in minutes
- Reusable SearchQuery: Harness the power of RushDB's fractal architecture
- Python SDK: Comprehensive Python API documentation
- TypeScript SDK: Complete TypeScript/JavaScript guide
- REST API: Full HTTP API reference
We welcome contributions! See our Contributing Guide for details.