Your Data, Naturally Connected

Vos données, connectées naturellement

Embedded graph database with Git-like branches and time travel. Base de données graphe embarquée avec branches Git-like et voyage dans le temps.

Installation Installation

# Python
pip install casys-db
# TypeScript/Node.js
npm install casys-db
# Setup: Knowledge Graph pour RAG
from casys_db import Database, Session
from casys_db import NodeEntity, HasMany

# Ouvrir base de prod
prod = Database("knowledge_graph.db")

# Schéma ORM (sans strings!)
class Topic(NodeEntity):
    pass  # label: "Topic"

class Document(NodeEntity):
    topics = HasMany(Topic)  # via auto: TOPICS
    related = HasMany(Topic, via="ABOUT")  # override

# Créer branche main si besoin
main = prod.branch("main")

Embedded Embarquée

Zero servers, runs in your process Zéro serveur, s'exécute dans votre process

📊

ISO GQL

Standard graph query language Langage standard de requêtes graphe

🔄

MVCC

Isolated transactions, consistent reads Transactions isolées, lecture cohérente

CasysDB in Action CasysDB en action

Powerful graph queries with ISO GQL, fluent Python ORM Requêtes graphe puissantes avec ISO GQL, ORM fluent en Python

# Create nodes and relationships
from casys_db import Database

db = Database("social_network.db")
session = db.default_branch().session()

# Create Person nodes
session.execute("""
  CREATE (alice:Person { name: 'Alice', age: 30 })
  CREATE (bob:Person { name: 'Bob', age: 25 })
  CREATE (carol:Person { name: 'Carol', age: 28 })
  
  CREATE (alice)-[:KNOWS { since: 2020 } ]->(bob)
  CREATE (alice)-[:KNOWS { since: 2019 } ]->(carol)
  CREATE (bob)-[:KNOWS { since: 2021 } ]->(carol)
  RETURN alice, bob, carol
""")

session.commit()

Why CasysDB? Pourquoi CasysDB ?

Everything you need to manage your graph data Tout ce dont vous avez besoin pour gérer vos données graphe

Embedded & Fast Embarquée & Rapide

Zero servers, zero configuration. Runs directly in your Python or TypeScript process. Starts in milliseconds. Zéro serveur, zéro configuration. S'exécute directement dans votre process Python ou TypeScript. Démarrage en millisecondes.

📊

ISO GQL

Standard ISO GQL language. MATCH, WHERE, RETURN, EXISTS, WITH. Compatible with modern GQL tools. Langage standard ISO GQL. MATCH, WHERE, RETURN, EXISTS, WITH. Compatible avec les outils GQL modernes.

🔄

MVCC

Transactions with snapshot isolation. Consistent reads, isolated writes. No blocking locks. Transactions avec snapshot isolation. Lectures cohérentes, écritures isolées. Pas de locks bloquants.

Time Travel Voyage dans le temps

Point-in-Time Recovery (PITR). Create branches from any commit. Explore complete history. Point-in-Time Recovery (PITR). Créez des branches à partir de n'importe quel commit. Explorez l'historique complet.

🐍

Fluent Python ORM ORM Python Fluent

Type-safe query builder with lambdas. where(), select(), join_out(). Like SQLAlchemy but for graphs. Query builder type-safe avec lambdas. where(), select(), join_out(). Comme SQLAlchemy mais pour les graphes.

📦

Zero Dependencies Zéro Dépendance

Compiled Rust engine. Single native library. Install in 3 seconds. No JVM, no Node.js required. Moteur Rust compilé. Une seule bibliothèque native. Installation en 3 secondes. Pas de JVM, pas de Node.js requis.

Branching & Time Travel Branches & Voyage dans le Temps

Point-in-Time Recovery and Git-like branches for your graph data Point-in-Time Recovery et branches Git-like pour vos données graphe

# Créer une branche depuis main
import casys_db

engine = casys_db.CasysEngine(data_dir="~/.casys_db")
db = engine.open_database("social")

# Créer une branche "main" si elle n'existe pas
engine.create_branch("social", "main")

# Créer une branche expérimentale depuis main
engine.create_branch("social", "experiment")

# Travailler sur experiment sans affecter main
exp_branch = engine.open_branch("social", "experiment")
result = exp_branch.query("""
  CREATE (p:Person { name: 'Test User' })
  RETURN p
""")

# main reste inchangé !
🌳

Isolated Branches Branches Isolées

Test changes safely. Each branch is completely isolated. Testez des changements sans risque. Chaque branche est complètement isolée.

Time Travel Voyage dans le Temps

Create a branch from any past commit. Debug easily. Créez une branche depuis n'importe quel commit passé. Débugguez facilement.

📸

Auto Snapshots Snapshots Auto

Each commit = snapshot. No data loss, complete history. Chaque commit = snapshot. Aucune perte de données, historique complet.

Use Cases Cas d'usage

CasysDB excels where data is connected CasysDB excelle là où les données sont connectées

👥

Social Networks Réseaux Sociaux

Find friends-of-friends, recommendations, community detection. 2-3 hop queries in milliseconds. Trouvez des amis d'amis, recommandations, détection de communautés. Queries 2-3 hops en millisecondes.

MATCH (user:Person)-[:KNOWS*2..3]->(friend)
WHERE user.id = $userId
RETURN DISTINCT friend
🧠

Knowledge Graphs Knowledge Graphs

Ontologies, RAG, semantic search. Complex relationships between entities, attributes, concepts. Ontologies, RAG, semantic search. Relationships complexes entre entités, attributs, concepts.

MATCH (concept)-[:RELATED_TO*]->(topic)
WHERE concept.name = 'Machine Learning'
RETURN topic.name, COUNT(*) AS relevance
🎯

Recommendation Engines Moteurs de Recommandation

Collaborative filtering, content-based recommendations. Find patterns in user interactions. Collaborative filtering, content-based recommendations. Trouvez des patterns dans les interactions utilisateurs.

MATCH (u:User)-[:LIKES]->(i:Item)<-[:LIKES]-(similar:User)
WHERE u.id = $userId
RETURN i.name, COUNT(similar) AS score
🕸️

Network Analysis Analyse de Réseaux

Fraud detection, supply chain, dependency tracking. Visualize and explore connections. Détection de fraude, supply chain, dependency tracking. Visualisez et explorez les connections.

MATCH path = (start)-[:DEPENDS_ON*]->(end)
WHERE start.type = 'Service'
RETURN path, LENGTH(path) AS depth

Why CasysDB? Pourquoi CasysDB ?

A modern, embedded, and powerful graph database. Une base de données graphe moderne, embarquée, et puissante.

Zero configuration Zero configuration

No server to manage. Runs directly in your Python or TypeScript application. Pas de serveur à gérer. S'exécute directement dans votre application Python ou TypeScript.

📊

Native ISO GQL ISO GQL natif

Standard graph query language. Learn once, use everywhere. Langage standard de requêtes graphe. Apprenez une fois, utilisez partout.

🔄

MVCC & PITR MVCC & PITR

Isolated transactions with MVCC. Point-in-Time Recovery to travel through history. Transactions isolées avec MVCC. Point-in-Time Recovery pour voyager dans l'historique.

CasysDB vs Alternatives CasysDB vs Alternatives

Why choose CasysDB for your graph data Pourquoi choisir CasysDB pour vos données graphe

Comparison of CasysDB and alternative databases Comparaison entre CasysDB et les autres bases de données
Feature Fonctionnalité CasysDB Neo4j SQLite PostgreSQL
Embedded (no server) Embarquée (no server)
Native Graph Queries Requêtes Graphe Natives ⚠️
Standard Language (ISO GQL) Langage Standard (ISO GQL) ⚠️ ⚠️
MVCC Transactions
Time Travel (PITR) Voyage dans le temps (PITR)
Type-Safe ORM ORM Type-Safe ⚠️ ⚠️
Dependencies Dépendances 0 JVM 0 Server
License Licence MIT GPL/Commercial Public Domain PostgreSQL

🚀 CasysDB combines SQLite's simplicity with graph database power, plus MVCC and Time Travel 🚀 CasysDB combine la simplicité de SQLite avec la puissance des bases graphe, le tout avec MVCC et Time Travel

Ready to Get Started? Prêt à commencer ?

CasysDB is open-source and ready to use. Check out the documentation or source code. CasysDB est open-source et prêt à l'emploi. Consultez la documentation ou le code source.