Show HN: SQLite Graph Ext – Graph database with Cypher queries (alpha)

Hacker News (score: 13)
Found: October 29, 2025
ID: 2168

Description

Database
Show HN: SQLite Graph Ext – Graph database with Cypher queries (alpha) I've been working on adding graph database capabilities to SQLite with support for the Cypher query language. As of this week, both CREATE and MATCH operations work with full relationship support.

Here's what it looks like:

    import sqlite3
    conn = sqlite3.connect(":memory:")
    conn.load_extension("./libgraph.so")
    
    conn.execute("CREATE VIRTUAL TABLE graph USING graph()")
    
    # Create a social network
    conn.execute("""SELECT cypher_execute('
        CREATE (alice:Person {name: "Alice", age: 30}),
               (bob:Person {name: "Bob", age: 25}),
               (alice)-[:KNOWS {since: 2020}]->(bob)
    ')""")
    
    # Query the graph with relationship patterns
    conn.execute("""SELECT cypher_execute('
        MATCH (a:Person)-[r:KNOWS]->(b:Person) 
        WHERE a.age > 25 
        RETURN a, r, b
    ')""")
The interesting part was building the complete execution pipeline - lexer, parser, logical planner, physical planner, and an iterator-based executor using the Volcano model. All in C99 with no dependencies beyond SQLite.

What works now: - Full CREATE: nodes, relationships, properties, chained patterns (70/70 openCypher TCK tests) - MATCH with relationship patterns: (a)-[r:TYPE]->(b) with label and type filtering - WHERE clause: property comparisons on nodes (=, >, <, >=, <=, <>) - RETURN: basic projection with JSON serialization - Virtual table integration for mixing SQL and Cypher

Performance: - 340K nodes/sec inserts (consistent to 1M nodes) - 390K edges/sec for relationships - 180K nodes/sec scans with WHERE filtering

Current limitations (alpha): - Only forward relationships (no `<-[r]-` or bidirectional `-[r]-`) - No relationship property filtering in WHERE (e.g., `WHERE r.weight > 5`) - No variable-length paths yet (e.g., `[r*1..3]`) - No aggregations, ORDER BY, property projection in RETURN - Must use double quotes for strings: {name: "Alice"} not {name: 'Alice'}

This is alpha - API may change. But core graph query patterns work! The execution pipeline handles CREATE/MATCH/WHERE/RETURN end-to-end.

Next up: bidirectional relationships, property projection, aggregations. Roadmap targets full Cypher support by Q1 2026.

Built as part of Agentflare AI, but it's standalone and MIT licensed. Would love feedback on what to prioritize.

GitHub: https://github.com/agentflare-ai/sqlite-graph

Happy to answer questions about the implementation!

More from Hacker

Security vulnerability found in Rust Linux kernel code

Security vulnerability found in Rust Linux kernel code

Show HN: Wirebrowser – A JavaScript debugger with breakpoint-driven heap search

Show HN: Wirebrowser – A JavaScript debugger with breakpoint-driven heap search Hi HN!<p>I&#x27;m building a JavaScript debugger called Wirebrowser. It combines network inspection, request rewriting, heap snapshots, and live object search.<p>The main experimental feature is BDHS (Breakpoint-Driven Heap Search): it hooks into the JavaScript debugger and automatically captures a heap snapshot at every pause and performs a targeted search for the value or structure of interest. This reveals the moment a value appears in memory and the user-land function responsible for creating it.<p>Another interesting feature is the Live Object Search: it inspects runtime objects (not just snapshots), supports regex and object similarity, and lets you patch objects directly at runtime.<p>Whitepaper: <a href="https:&#x2F;&#x2F;fcavallarin.github.io&#x2F;wirebrowser&#x2F;BDHS-Origin-Trace" rel="nofollow">https:&#x2F;&#x2F;fcavallarin.github.io&#x2F;wirebrowser&#x2F;BDHS-Origin-Trace</a><p>Feedback very welcome, especially on whether BDHS would help your debugging workflow.

Show HN: Dograh – an OSS Vapi alternative to quickly build and test voice agents

Show HN: Dograh – an OSS Vapi alternative to quickly build and test voice agents Hi HN, I have been building voice agents for sometime now. I was earlier automating parts of visa processing, and we needed real-time, multilingual voice calling.<p>I assumed the hard work was just wiring LiveKit&#x2F;Pipecat + STT&#x2F;TTS + an LLM. It wasn’t.<p>Even with solid OSS (Pipecat&#x2F;LiveKit), we still had to do a lot of plumbing- variable extraction, tracing, testing etc and any workflow changes required constant redeploys.<p>We eventually realized we’d spent more time building infrastructure than building the actual agents. Everything felt custom. We hit every possible pain with Pipecat and VAPI style systems.<p>So we built Dograh - a fully open-source voice agent framework that includes all the boring, painful pieces by default.<p>What’s different:<p>- Pipecat-based engine, but forked - custom event model, and concurrency fixes<p>- One-click start template generated by an LLM Agent for a quick get start template for any use case<p>- Drag-and-drop visual agent builder for quick iteration (the thing we wished existed earlier)<p>- Variable extraction layer (name&#x2F;order&#x2F;date&#x2F;etc.) baked into the LLM loop<p>- Built in Telephony integration (Twilio&#x2F; Vonage&#x2F; Vobiz&#x2F; Cloudonix)<p>- Multilingual support end-to-end<p>- Select any LLM TTS STT (add their credits, if any)<p>- AI-to-AI call testing: automatically stress-test an agent before shipping (still a work in progress- so patchy as of now)<p>- Fully Open Source<p>It&#x27;s built and maintained by YC alumni &#x2F; exit founders who got tired of rebuilding the same plumbing.<p>Why we open-sourced it: We kept feeling that the space was drifting toward closed SaaS abstractions (VAPI, Retell). Those are good for demos, but once you need data controls, privacy or self&#x2F;offline deployment, you end up stuck. We wanted a stack where you can see every part, fork it, self-host it, and patch it as needed.<p>Try it:<p>- Repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;dograh-hq&#x2F;dograh" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dograh-hq&#x2F;dograh</a><p>This spins up a basic multilingual agent with everything pre-wired.<p>Who this is for:<p>- If you are looking for self hosting a Vapi like platform for Data Privacy etc.<p>- Anyone trying to build production-grade voice agents without reinventing audio plumbing.<p>- If you’ve tried to glue STT→LLM→TTS manually, you probably know the exact pain this is built for<p>Happy to answer technical questions, show the architecture, or hear how we can improve the product.

Reinventing how .NET builds and ships (again)

Reinventing how .NET builds and ships (again)

No other tools from this source yet.