Skip to content
Projets

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.

Comment ces chiffres sont mesurés

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ées

README_FR.md

Original

RushDB Logo

RushDB — 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.

CI License GitHub Stars Follow on X

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

Deploy to Render

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.x de 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.x et l'image rushdb/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