[{"data":1,"prerenderedAt":397},["ShallowReactive",2],{"project-49437049":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":43,"post_text":45,"what":46,"said":84,"maker_in_thread":218,"shape":228,"grid":232,"attempts":360,"same_week":361,"maker_shows":35,"maker_hidden":390,"reader_version":391,"card":392},"49437049","LatticeDB","Like SQLite but for graph databases","title","Show HN: LatticeDB – Like SQLite but for graph databases","https:\u002F\u002Fgithub.com\u002Fjeffhajewski\u002Flatticedb","github.com","smiths1999",1787676725,2026,190,54,317,4366,8,"notable","data","embedded graph database","library",[24,25,26,27,28],"graph database","embedded database","sqlite","single file database","graph traversal","curious",0.2,{"positive":32,"neutral":33,"mixed":34,"critical":35},5,10,0,1,16,{"idea":38,"performance":39,"execution":40,"docs":41},{"positive":35,"critical":34},{"positive":34,"critical":35},{"positive":34,"critical":34},{"positive":42,"critical":34},2,[32,34,35,34,44,44,34,32,34,34,34,44,32,32,44,44,34,34,34,34,34,34,32,44,34,44,34,44,34,34,34,44,34,34,34,34,34,34,34,34],3,"We have been using graph DBs more and more at work. I found them painful to work with locally and decided to try and build something better.",{"problem":47,"audience":53,"pricing":58,"motivation":59,"time_to_build":58,"stack":66,"openness":81,"stage":82,"team_size":83},{"value":48,"source":49,"evidence":50},"Graph databases are painful to work with locally","maker",[51],{"id":52},"post",{"value":54,"source":55,"evidence":56},"Developers who use graph databases at work and want something local","inferred",[57],{"id":52},null,{"value":60,"source":49,"evidence":61},"Maker found graph DBs painful locally and wanted to build something better; also a learning project",[62,63],{"id":52},{"id":64,"by":11,"text":65},"49440044","Great question! Two reasons. One, I wanted to build something on my own from the ground up rather than contribute to an already established large project. For me, it's a better…",[67,75],{"value":68,"source":69,"evidence":70},"Zig","commenter",[71],{"id":72,"by":73,"text":74},"49443992","adsharma","I measured this on a M4 mac mini (base model): ``` zig build sqlite-benchmark Medium (100K nodes) +----------------------+-----------+---------+---------+ | Workload | LatticeDB…",{"value":76,"source":49,"evidence":77},"SIMD code",[78],{"id":79,"by":11,"text":80},"49439378","I used claude extensively (as well as codex, I finding myself switching between the two every few months). How I used claude varied by the stage. I spent a lot of time initially…","open_source","beta","solo",{"praise":85,"objections":114,"requests":132,"questions":155,"alternatives":190},[86,97,108],{"value":87,"source":69,"evidence":88},"Excellent README and clear 'when to use \u002F not use' section",[89,93],{"id":90,"by":91,"text":92},"49444974","anigbrowl","Very nice - been looking for something that combined the flexibility of graph DBs like Neo4j with the simplicity and low cognitive overhead of SQLite. PErformance looks great…",{"id":94,"by":95,"text":96},"49438124","ebb_earl_co","Just read through the README on GitHub and this looks impressive! Kudos",{"value":98,"source":69,"evidence":99},"Sqlite-like embedded design is appealing",[100,104],{"id":101,"by":102,"text":103},"49440174","k9294","I'm a big fan of SQLite embedded nature, which allows for chaining multiple SQL calls with near-zero latency. I'm currently building a personal knowledge graph server a mix of…",{"id":105,"by":106,"text":107},"49437666","vorpalhex","Thank you for sharing. I think the sqlite-esque local file approach makes sense for a lot of use cases. What are some of the scales of the data you've been able to test this…",{"value":109,"source":69,"evidence":110},"Clean, visually appealing docs site",[111],{"id":112,"by":11,"text":113},"49438904","I like the aesthetics of this page. Very clean and visually appealing",[115,119,125],{"value":116,"source":69,"evidence":117},"Benchmark numbers differ from the README and comparison site",[118],{"id":72,"by":73,"text":74},{"value":120,"source":49,"evidence":121},"Built with LLMs; tests may be superficial",[122],{"id":123,"by":11,"text":124},"49438833","I did some perf benchmarking with 1M nodes but I'm mostly using it at smaller scales for another project exploring agentic memory. Most interesting part is a tough one. From a…",{"value":126,"source":69,"evidence":127},"Lacked cross-process locking; concurrent writers unsafe",[128],{"id":129,"by":130,"text":131},"49440561","vladigtr","Nice work. How do you handle concurrent writers on a single file? That's where embedded databases usually get tricky, and the graph model makes locking even more interesting.",[133,140,151],{"value":134,"source":69,"evidence":135},"Litestream-style backup or hot copy",[136],{"id":137,"by":138,"text":139},"49439978","itissid","Does it have something like litestream to backit up for specific production usecases (i.e. a single webserver is enough and downtime of a few mins is tolerable)?",{"value":141,"source":69,"evidence":142},"RDF and SPARQL support",[143,147],{"id":144,"by":145,"text":146},"49439305","tomComb","I wonder about mapping RDF data (like Wikidata) to this. I guess the RDF predicate becomes the edge in your node-edge style of graph.",{"id":148,"by":149,"text":150},"49440493","zvr","If you're going to support RDF, please also consider supporting SPARQL for querying the data.",{"value":152,"source":69,"evidence":153},"Hierarchical permission modeling examples",[154],{"id":101,"by":102,"text":103},[156,175,183],{"value":157,"source":69,"evidence":158},"How does it compare to KuzuDB, LadybugDB, DuckPGQ, SurrealDB?",[159,163,167,171],{"id":160,"by":161,"text":162},"49439931","nrjames","Out of curiosity, why did you not fork and build on Kuzu?",{"id":164,"by":165,"text":166},"49438317","srameshc","LatticeDB looks good, just curious how useful is duckpgq https:\u002F\u002Fduckdb.org\u002Fcommunity_extensions\u002Fextensions\u002Fduckpgq",{"id":168,"by":169,"text":170},"49451386","pwmglenn","How does it compare to embedded SurrealDB?",{"id":172,"by":173,"text":174},"49438139","anentropic","See also: https:\u002F\u002Fladybugdb.com\u002F \"DuckDB for graphs\"",{"value":176,"source":69,"evidence":177},"How concurrent writers and multi-process access are handled",[178,179],{"id":129,"by":130,"text":131},{"id":180,"by":181,"text":182},"49468738","soumitsrah","Nice! I am a huge fan of using process-embedded DBs. Question though: how are you dealing with multi-process access? or does 1 process lock the db?",{"value":184,"source":69,"evidence":185},"How much of the code was written with Claude",[186],{"id":187,"by":188,"text":189},"49439202","tescreal","I see \"Claude\" listed as a contributor. Could you describe how and how much? I'm keen to see how this looks in practise. As for the tool, it scratches an itch I've been having,…",[191,199,203,207,214],{"value":192,"source":69,"evidence":193},"Kuzu \u002F LadybugDB",[194,195],{"id":172,"by":173,"text":174},{"id":196,"by":197,"text":198},"49440370","ble","ladybugdb ( https:\u002F\u002Fgithub.com\u002FLadybugDB\u002Fladybug ) appears to be an open source successor to Kuzu fwiw",{"value":200,"source":69,"evidence":201},"DuckPGQ",[202],{"id":164,"by":165,"text":166},{"value":204,"source":69,"evidence":205},"SurrealDB",[206],{"id":168,"by":169,"text":170},{"value":208,"source":69,"evidence":209},"ArcadeDB",[210],{"id":211,"by":212,"text":213},"49468740","lvca","Why don't just use ArcadeDB (https:\u002F\u002Farcadedb.com)? Its Graph OLAP makes graph queries faster than KuzuDB (LadybugDB now).",{"value":215,"source":69,"evidence":216},"Neo4j",[217],{"id":90,"by":91,"text":92},{"comments":219,"answered":33,"key":220},18,[221,224,227],{"id":222,"text":223},"49441458","The permissions question is interesting. I think the answer depends on context. One approach would be to create some edge types `hasAccessTo` and `accessibleBy` that connect a…",{"id":225,"text":226},"49448182","Thanks for sharing this. The lattice numbers are pretty close but my sqlite numbers are way off. I got a new computer since then so will remeasure.",{"id":123,"text":124},{"commenters":229,"max_depth":32,"maker_replies":219,"first_comment_mins":230,"lifespan_hours":231},30,45,75,[233,235,237,241,243,245,247,249,250,251,254,257,261,264,267,269,272,276,281,282,284,285,287,290,294,296,298,300,301,303,305,307,309,311,314,316,318,320,321,324,325,328,331,333,336,340,342,344,347,349,351,354,355,358],[101,34,32,234,102,34],"project\u002Fpositive\u002Fidea",[222,34,34,236,11,35],"maker\u002Fneutral\u002Fidea",[238,34,44,239,240,34],"49443678","project\u002Fneutral\u002Fidea","infogulch",[72,35,35,242,73,34],"project\u002Fcritical\u002Fperformance",[225,35,34,244,11,35],"maker\u002Fneutral\u002Fperformance",[105,42,44,246,106,34],"maker\u002Fneutral\u002Fnone",[123,42,34,248,11,35],"maker\u002Fneutral\u002Fexecution",[187,44,44,248,188,34],[79,44,34,248,11,35],[90,252,32,253,91,34],4,"project\u002Fpositive\u002Fdocs",[255,252,34,256,11,35],"49448297","maker\u002Fneutral\u002Fdocs",[258,32,34,259,260,34],"49440461","other\u002Fneutral\u002Fnone","cjlm",[262,32,34,263,11,35],"49441281","other\u002Fpositive\u002Fnone",[265,32,34,259,266,34],"49443229","EGreg",[137,268,44,239,138,34],6,[270,268,34,271,11,35],"49441760","maker\u002Fpositive\u002Fexecution",[273,268,32,274,275,34],"49445142","maker\u002Fpositive\u002Fnone","moostee",[277,278,32,279,280,34],"49439520",7,"project\u002Fpositive\u002Fnone","petervandijck",[144,18,44,239,145,34],[283,18,34,236,11,35],"49439391",[148,18,44,239,149,34],[286,18,34,236,11,35],"49441775",[288,18,34,259,289,34],"49446017","ebolyen",[291,18,34,292,293,34],"49446000","other\u002Fneutral\u002Fidea","LunaSea",[295,18,34,259,73,34],"49443654",[211,297,34,292,212,34],9,[299,297,34,236,11,35],"49470046",[164,33,34,292,165,34],[302,33,34,236,11,35],"49439015",[94,304,32,253,95,34],11,[306,304,34,246,11,35],"49439087",[180,308,44,239,181,34],12,[310,308,34,236,11,35],"49470057",[129,312,44,313,130,34],13,"project\u002Fneutral\u002Fexecution",[315,312,34,248,11,35],"49441589",[317,312,34,271,11,35],"49448617",[160,319,44,239,161,34],14,[64,319,34,236,11,35],[322,319,34,259,323,34],"49440231","threatofrain",[196,319,34,259,197,34],[326,319,34,327,161,34],"49440534","commenter\u002Fneutral\u002Fidea",[168,329,44,330,169,34],15,"project\u002Fneutral\u002Fnone",[332,329,34,236,11,35],"49452336",[334,36,34,259,335,34],"49483561","knoguchi",[337,338,34,259,339,34],"49445644",17,"tingletech",[172,219,34,341,173,34],"other\u002Fpositive\u002Fdesign",[343,219,34,259,173,34],"49438165",[345,219,34,259,346,34],"49442411","lmeyerov",[348,219,34,259,173,34],"49448402",[350,219,34,259,346,34],"49450727",[352,219,34,353,73,34],"49443437","other\u002Fcritical\u002Fperformance",[112,219,34,341,11,35],[356,219,34,259,357,34],"49439252","AgharaShyam",[359,219,34,259,73,34],"49458563",[],[362,367,372,376,380,385],{"id":363,"name":364,"points":365,"category":366},"49373456","simedw.com",598,"creative",{"id":368,"name":369,"points":370,"category":371},"49378768","Huzzah",384,"dev_tools",{"id":373,"name":374,"points":375,"category":366},"49419351","rack-02",240,{"id":377,"name":378,"points":379,"category":20},"49421806","PicoMQ",159,{"id":381,"name":382,"points":383,"category":384},"49410814","Thoreau BASIC",156,"languages",{"id":386,"name":387,"points":388,"category":389},"49435675","CarWatch",146,"ai",false,"v2",{"id":393,"name":5,"line":6,"ai":390,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":30,"top":18,"kw":394,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":395,"url":9,"mix":396,"praise":87,"objection":116,"sub":21},49437049,[24,25,26,27,28],"5010330500035533000000530303000300000000",[32,33,34,35],1793991164758]