HackerTrans
TopNewTrendsCommentsPastAskShowJobs

marcobambini

4,973 karmajoined 12 anni fa
https://marcobambini.com

Submissions

Measuring and Reducing CPU Usage in SQLite

sqlite.org
2 points·by marcobambini·6 giorni fa·0 comments

SQLite Databases for Humans and Agents

marcobambini.substack.com
3 points·by marcobambini·10 giorni fa·0 comments

Rethinking Databases for Humans and AI Agents

marcobambini.substack.com
2 points·by marcobambini·11 giorni fa·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
4 points·by marcobambini·mese scorso·1 comments

Block-Level CRDT: The Missing Piece for Collaborative AI Agent Memory

marcobambini.substack.com
2 points·by marcobambini·mese scorso·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
2 points·by marcobambini·2 mesi fa·1 comments

SQLite-Vector now with Google TurboQuant for a 38x speedup

github.com
3 points·by marcobambini·2 mesi fa·0 comments

Show HN: SQLite-Columnar – Columnar Storage for SQLite

github.com
4 points·by marcobambini·2 mesi fa·0 comments

SQLite Columnar: Column-oriented extension for SQLite up to 130,000x faster

github.com
2 points·by marcobambini·2 mesi fa·0 comments

Show HN: SQLite-columnar, a column-oriented analytics extension for SQLite

github.com
2 points·by marcobambini·2 mesi fa·0 comments

[untitled]

1 points·by marcobambini·2 mesi fa·0 comments

Show HW: Vectors.Space – An free service for embeddings

vectors.space
1 points·by marcobambini·2 mesi fa·0 comments

Show HW: LiteParser – An embeddable SQLite parser

github.com
2 points·by marcobambini·2 mesi fa·0 comments

Show HN: Adam – An embeddable cross-platform AI agent library

github.com
24 points·by marcobambini·2 mesi fa·9 comments

A New SQLite Parser

marcobambini.substack.com
1 points·by marcobambini·3 mesi fa·0 comments

Block-Level CRDT: The Missing Piece for Collaborative AI Agent Memory

marcobambini.substack.com
2 points·by marcobambini·3 mesi fa·1 comments

That Time Is Gone

marcobambini.substack.com
2 points·by marcobambini·3 mesi fa·0 comments

SQLite-Sync: Offline-First CRDT Sync Between SQLite and PostgreSQL

github.com
4 points·by marcobambini·3 mesi fa·0 comments

Show HN: SQLite Memory – Markdown based AI agent memory with offline-first sync

github.com
10 points·by marcobambini·3 mesi fa·1 comments

Show HN: SQLite Memory – Markdown based AI agent memory with offline-first sync

2 points·by marcobambini·3 mesi fa·0 comments

comments

marcobambini
·3 mesi fa·discuss
How a simple CRDT algorithm unlocks something surprisingly powerful: AI agents that learn from each other without ever talking to each other.
marcobambini
·3 mesi fa·discuss
Modern AI agents need persistent, searchable memory to maintain context across conversations and tasks. Inspired by OpenClaw's memory architecture, sqlite-memory implements what we believe will become the de facto standard for AI agent memory systems: markdown files as the source of truth.

In this paradigm:

* Markdown files serve as human-readable, version-controllable knowledge bases

* Embeddings enable semantic understanding and retrieval

* Hybrid search combines the precision of full-text search with the intelligence of vector similarity

sqlite-memory bridges these concepts, allowing any SQLite-powered application to ingest, store, and semantically search over knowledge bases.
marcobambini
·4 mesi fa·discuss
No, the library is intentionally minimal on that front. It generates and validates keys but doesn't track any metadata about them. Keys are plain C strings, so detecting "time to compact" is straightforward on the caller's side:

  - Key length is the most natural signal, just strlen(). If your base62 keys are typically 3-5 characters and you start seeing 15+, that's a reasonable trigger.

  - Max key length in the list is cheap to track if you're already iterating for display or sync.
Keeping that policy out of the library is intentional. What counts as "too long" depends entirely on the application. A SQLite column with a B-tree index cares about different thresholds than an in-memory CRDT. And the right moment to compact (sync boundary, idle tick, batch write) is an app-level scheduling decision the library has no business making.
marcobambini
·4 mesi fa·discuss
Good question, in the current version, compaction is left to the caller.

The library does a few things to keep key growth practical:

  1. generate_n_keys_between: if you know you're inserting N items at once (e.g. a bulk paste or drag of multiple items), it distributes them evenly in a single call rather than chaining N sequential generate_key_between calls, which would produce progressively longer keys.

  2. Higher bases: base62 (default) and base95 give you a much wider branching factor per character than base10, so keys stay shorter under the same insertion patterns.
But yes, in a long-lived list with adversarial insertion patterns (always inserting at the same spot), keys will grow unboundedly, that's inherent to the algorithm. In practice, compaction is an application-level concern: you'd pick a quiet moment (or a sync boundary, if you're doing CRDT-style collaboration) and renumber the whole list with fresh, evenly spaced keys.

The library gives you generate_n_keys_between(NULL, NULL, n) which makes trivial to generate N fresh keys for the whole list in one call.
marcobambini
·5 mesi fa·discuss
Author here... it is free for open-source projects.

What kind of license would you like more?
marcobambini
·7 mesi fa·discuss
If you don't understand what we are building, that doesn't mean you need to post such an inappropriate comment.
marcobambini
·7 mesi fa·discuss
Just to clarify a point that seems to come up in several comments: we are backed by SQLite’s author, and we have explicit permission to use “SQLite” in the company and product names.

We believe SQLite on the edge is a major opportunity, and our focus is on building genuinely new features and infrastructure on top of it.
marcobambini
·7 mesi fa·discuss
Hello, SQLite Cloud's founder here. We are backed by SQLite's author, and we have the full rights to use SQLite in the company's and products' names.
marcobambini
·7 mesi fa·discuss
We are backed by SQLite's author, and we have the full rights to use SQLite in the company's and products' names.
marcobambini
·7 mesi fa·discuss
Hello, SQLite Cloud's founder here. We are backed by SQLite's author, and we have the full rights to use SQLite in the company's and products' names.
marcobambini
·9 mesi fa·discuss
I sincerely apologize for that. I am not a native English speaker, so I always use LLM to polish my articles before publishing.
marcobambini
·9 mesi fa·discuss
The algorithm has a way to resolve conflicts even if, by any chance, the Lamport clock has the same value in all peers
marcobambini
·10 mesi fa·discuss
I understand your concerns about the license, but our goal was simply to prevent large corporations from taking our work, forking it, and offering it to their customers while we struggle to sustain development. We need to monetize our work in order to survive, though we do offer very generous commercial licenses for those who are interested.
marcobambini
·10 mesi fa·discuss
We are backed by the SQLite author (Dr. Richard Hipp), and we have full rights to use the SQLite name.
marcobambini
·10 mesi fa·discuss
Instead of sqlite-vec you can take a look at the new sqlite-vector extension: https://substack.com/home/post/p-172465902
marcobambini
·10 mesi fa·discuss
I'd like to point out the following open-source SQLite project: https://github.com/sqliteai/sqlite-sync with a built-in cross-platform network layer.

P.S. I am the author of the project.
marcobambini
·11 mesi fa·discuss
There is a new solution that is worth considering: https://github.com/sqliteai/sqlite-sync

P.S. I am the author