rush-db/rushdb
rush-db/rushdb has 328 GitHub stars and 28 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-12 22:29 UTC. Last push 2026-11-05.
Progression mesurée des étoiles
- in 24h
- 0
- in 7 days
- Mise à jour retardée
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
À propos
RushDB is a self-describing, graph-native database that helps AI agents reason over data with confidence: progressively introspect what's queryable—without guesswork.
DonnéesREADME_FR.md
OriginalRushDB — la base de données pour l'IA
Une seule base de données pour vos enregistrements, leurs relations et la recherche.
Écrivez du JSON. RushDB déduit les types, relie les objets imbriqués en un graphe et vous permet de l'interroger avec son langage de requête JSON, SQL, Cypher, Gremlin ou des documents de style Mongo, ainsi qu'avec la recherche vectorielle, plein texte et hybride. Un binaire Rust, un répertoire de données, Apache-2.0.
Site web • Documentation • Manuel • RushDB Cloud • Déploiement
English • 中文 • 日本語 • 한국어 • Deutsch • Français • Português • Español • हिन्दी • العربية • Bahasa Indonesia • ไทย
Démarrage rapide
curl -fsSL https://raw.githubusercontent.com/rush-db/rushdb/main/install.sh | sh
rushdb up
Le script vérifie la somme de contrôle de la version (et sa signature Sigstore si cosign est installé), puis installe le binaire rushdb dans ~/.rushdb/bin. rushdb up démarre un nœud persistant sur http://127.0.0.1:3000, avec ses données dans ./.rushdb et le jeton local local-token.
Écrivez un document JSON imbriqué. Chaque objet imbriqué devient un enregistrement à part entière, relié à son parent :
export RUSHDB_TOKEN=local-token
curl -s http://127.0.0.1:3000/protocol/v1/execute \
-H "Authorization: Bearer $RUSHDB_TOKEN" -H 'Content-Type: application/json' \
-d '{"protocolVersion":1,"operation":{"kind":"ingest","ingest":{"kind":"documents","label":"COMPANY",
"documents":{"name":"Acme","DEPARTMENT":[
{"name":"Engineering","headcount":12,"EMPLOYEE":[{"name":"Ada","role":"Staff Engineer"},{"name":"Linus","role":"Engineer"}]},
{"name":"Sales","headcount":4,"EMPLOYEE":[{"name":"Grace","role":"Account Executive"}]}]}}}}'
Cherchez ensuite les ingénieurs d'Acme. Le filtre traverse les relations en nommant les étiquettes liées :
curl -s http://127.0.0.1:3000/protocol/v1/execute \
-H "Authorization: Bearer $RUSHDB_TOKEN" -H 'Content-Type: application/json' \
-d '{"protocolVersion":1,"operation":{"kind":"query","query":{"kind":"records","query":{
"labels":["EMPLOYEE"],
"predicate":{"role":{"$contains":"Engineer"},"DEPARTMENT":{"COMPANY":{"name":"Acme"}}}}}}}'
Poursuivez avec le guide de démarrage.
Interrogez-la à votre façon
Les mêmes enregistrements répondent à toutes les interfaces.
SQL via le protocole PostgreSQL, avec psql ou n'importe quel pilote PostgreSQL. Les étiquettes sont des tables :
PGPASSWORD=$RUSHDB_TOKEN psql "host=127.0.0.1 port=5432 user=rushdb dbname=rushdb sslmode=disable" \
-c "SELECT name, headcount FROM department ORDER BY headcount DESC"
Cypher via HTTP, ou via Bolt avec les pilotes Neo4j (rushdb up --languages sql,cypher --bolt-port 7687) :
MATCH (d:DEPARTMENT)-->(e:EMPLOYEE)
RETURN d.name AS department, count(e) AS people ORDER BY people DESC
Les SDK en mode direct (npm install @rushdb/javascript-sdk) :
import RushDB from '@rushdb/javascript-sdk'
const db = new RushDB(process.env.RUSHDB_TOKEN, { direct: true, engineUrl: 'http://127.0.0.1:3000' })
const engineers = await db.records.find({
labels: ['EMPLOYEE'],
where: { role: { $contains: 'Engineer' }, DEPARTMENT: { COMPANY: { name: 'Acme' } } },
orderBy: { name: 'asc' }
})
console.log(engineers.data.map((employee) => employee.data.name)) // [ 'Ada', 'Linus' ]
Gremlin, SQL/PGQ GRAPH_TABLE, les documents de style Mongo et ISO GQL passent par le même point d'accès HTTP. Voir Langages de requête.
Ce qu'elle offre
| Fonctionnalité | Ce que cela signifie |
|---|---|
| Aucun schéma à concevoir | Écrivez du JSON de n'importe quelle forme. Les types sont déduits valeur par valeur, les objets imbriqués deviennent des enregistrements liés, et le moteur tient un catalogue exact, interrogeable, des étiquettes, propriétés et relations. |
| Les propriétés sont de premier ordre | Le Labeled Meta-Property Graph (LMPG) stocke chaque propriété comme une définition typée partagée par les enregistrements qui l'utilisent : la découverte du schéma, les plages de valeurs et les facettes viennent de la disposition du stockage elle-même. |
| De nombreux langages de requête | Un langage de requête JSON natif, SQL, Gremlin, SQL/PGQ, des documents de style Mongo, ainsi qu'openCypher et ISO GQL en version candidate. |
| Recherche | Index vectoriels (exacts et HNSW) sur les vecteurs que vous fournissez, index plein texte BM25 et recherche hybride qui combine les deux. |
| Durable et transactionnelle | Journal d'écriture anticipée, instantanés MVCC, transactions multi-instructions, sauvegardes avec restauration à un instant donné et réplication en continu vers des suiveurs en lecture seule. |
| Protocoles standard | HTTP, le protocole PostgreSQL, gRPC et Bolt depuis un seul processus. |
| Multilocataire | Locataires optionnels à refus par défaut, chacun avec son propre espace de clés. |
| Un seul binaire | rushdb serve lance le serveur, rushdb up un nœud local. Aucun autre service à exploiter. |
Déploiement
| Où | Comment |
|---|---|
| Docker | docker run -p 127.0.0.1:3000:3000 -v rushdb:/data -e RUSHDB_TOKEN=change-me rushdb/rushdb |
| Docker Compose | deploy/templates/docker-compose, avec une variante HTTPS derrière Caddy |
| Kubernetes | Chart Helm : helm install rushdb oci://ghcr.io/rush-db/charts/rushdb --set auth.token=... |
| VM Linux | cloud-init pour DigitalOcean, Hetzner, AWS, GCP, Azure ; unité systemd |
| Plateformes | Fly.io, Render, Coolify, Dokploy |
Autres moyens d'installation
| Méthode | Commande | Remarques |
|---|---|---|
| Script d'installation | curl -fsSL https://raw.githubusercontent.com/rush-db/rushdb/main/install.sh | sh |
Linux (glibc 2.28+) et macOS, x86-64 et arm64. sh -s -- --version v3.0.0 fixe une version. |
| Homebrew | brew install rush-db/tap/rushdb |
macOS et Linux. brew services start rushdb le lance en arrière-plan. |
| Docker | rushdb/rushdb |
linux/amd64 et linux/arm64 ; aussi ghcr.io/rush-db/rushdb. |
| Cargo | cargo binstall rushdb-server ou cargo install rushdb-server --locked |
binstall récupère le binaire publié ; install compile (nécessite un compilateur C++). |
| Archive de version | GitHub releases | Archives avec sommes de contrôle SHA-256, SBOM et signatures Sigstore. |
| Sources | cargo build --release -p rushdb-server --bin rushdb |
Voir Installation. |
Windows n'est pas pris en charge nativement ; utilisez WSL 2 ou Docker. Lisez Sécurité avant d'exposer un nœud au-delà de la boucle locale.
État
| Domaine | État |
|---|---|
| Protocole natif, SQL, parcours Gremlin textuels, documents de style Mongo | Stable |
SQL/PGQ GRAPH_TABLE |
Stable, lecture seule |
| openCypher, ISO GQL, Bolt | Version candidate, à activer : les suites de conformité externes ne passent pas entièrement (détails) |
| Protocole PostgreSQL | Lectures SQL et écritures en une instruction ; vérifié avec psql, node-postgres, psycopg et tokio-postgres, pas avec tous les clients ou ORM |
| Réplication | Flux asynchrone vers des suiveurs en lecture seule ; la promotion est manuelle, sans bascule automatique |
| Raft, partitionnement du stockage | Aperçu, pas pour la production : Raft tourne dans un processus avec un état en mémoire ; les commits multi-partitions ne sont pas atomiques en cas de panne |
Le manuel documente les limites exactes de chaque interface.
Se connecter
| Interface | Par défaut | Activation |
|---|---|---|
| Protocole HTTP natif | 127.0.0.1:3000, POST /protocol/v1/execute |
toujours actif |
| Protocole PostgreSQL | 127.0.0.1:5432 |
actif avec sql (par défaut) |
gRPC (rushdb.v1.Database/Execute) |
désactivé | --grpc-port |
| Bolt 5.0 | désactivé | --bolt-port avec cypher |
Les SDK JavaScript et Python, le serveur MCP et les compétences pour agents fonctionnent avec un moteur auto-hébergé en mode direct.
Moteur auto-hébergé et RushDB Cloud
Ce moteur est la partie de RushDB que vous auto-hébergez. Il ne génère pas d'embeddings, n'héberge pas de tableau de bord et ne gère pas d'utilisateurs : cela vient avec RushDB Cloud, le service géré qui exploite ce moteur et ajoute le tableau de bord, les embeddings gérés et les fonctions d'IA (recherche en langage naturel, suggestions de motifs de relations). Les SDK et le serveur MCP fonctionnent avec l'un ou l'autre : donnez-leur une clé d'API RushDB Cloud, ou pointez-les vers votre moteur (direct: true, engineUrl) pour tout sauf les fonctions Cloud, qu'ils refusent avec CloudOnlyError.
Documentation
- Manuel : prise en main, modèle de données, requêtes, langages, recherche, exploitation et tables de référence.
- docs.rushdb.com : tutoriels, SDK et serveur MCP.
- Mise à niveau depuis RushDB 2.x : la 2.x était la pile basée sur Neo4j, désormais sur la branche
2.xde ce dépôt.
Versions
- RushDB 3.x (
main) : la version actuelle. - RushDB 2.x (legacy) : la pile basée sur Neo4j, sur la branche
2.xet l'imagerushdb/platform. Correctifs de sécurité uniquement jusqu'au 2027-10-28.
Contribuer
Voir CONTRIBUTING.md. Le contrôle qualité :
cargo test --workspace --no-fail-fast --locked
cargo clippy --workspace --all-targets --locked
cargo fmt --all -- --check
scripts/check-quality-bar.sh
Sous licence Apache-2.0.
Explorer des projets similaires
Asabeneh/30-Days-Of-Python
Le défi de programmation 30 Days of Python est un guide pas à pas pour apprendre le langage de programmation Python en 30 jours. Ce défi peut prendre plus de 100 jours. Avancez à votre rythme. Ces vidéos peuvent aussi vous aider : https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,686 étoilesgrafana/grafana
Plateforme ouverte et composable d’observabilité et de visualisation de données. Visualise les métriques, les journaux et les traces issus de plusieurs sources, comme Prometheus, Loki, Elasticsearch, InfluxDB, Postgres et bien d’autres.
77,876 étoilesredis/redis
Pour les développeurs qui créent des applications en temps réel pilotées par les données, Redis est le cache, le serveur de structures de données et le moteur de requêtes documentaires et vectorielles préféré, le plus rapide et le plus riche en fonctionnalités.
77,489 étoilesapache/superset
Apache Superset est une plateforme de visualisation et d'exploration de données.
75,513 étoiles