HackerTrans
TopNewTrendsCommentsPastAskShowJobs

marcobambini

4,973 karmajoined hace 12 años
https://marcobambini.com

Submissions

Measuring and Reducing CPU Usage in SQLite

sqlite.org
2 points·by marcobambini·hace 6 días·0 comments

SQLite Databases for Humans and Agents

marcobambini.substack.com
3 points·by marcobambini·hace 10 días·0 comments

Rethinking Databases for Humans and AI Agents

marcobambini.substack.com
2 points·by marcobambini·hace 11 días·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
4 points·by marcobambini·el mes pasado·1 comments

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

marcobambini.substack.com
2 points·by marcobambini·el mes pasado·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
2 points·by marcobambini·hace 2 meses·1 comments

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

github.com
3 points·by marcobambini·hace 2 meses·0 comments

Show HN: SQLite-Columnar – Columnar Storage for SQLite

github.com
4 points·by marcobambini·hace 2 meses·0 comments

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

github.com
2 points·by marcobambini·hace 2 meses·0 comments

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

github.com
2 points·by marcobambini·hace 2 meses·0 comments

[untitled]

1 points·by marcobambini·hace 2 meses·0 comments

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

vectors.space
1 points·by marcobambini·hace 2 meses·0 comments

Show HW: LiteParser – An embeddable SQLite parser

github.com
2 points·by marcobambini·hace 2 meses·0 comments

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

github.com
24 points·by marcobambini·hace 2 meses·9 comments

A New SQLite Parser

marcobambini.substack.com
1 points·by marcobambini·hace 3 meses·0 comments

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

marcobambini.substack.com
2 points·by marcobambini·hace 3 meses·1 comments

That Time Is Gone

marcobambini.substack.com
2 points·by marcobambini·hace 3 meses·0 comments

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

github.com
4 points·by marcobambini·hace 3 meses·0 comments

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

github.com
10 points·by marcobambini·hace 3 meses·1 comments

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

2 points·by marcobambini·hace 3 meses·0 comments

comments

marcobambini
·hace 3 meses·discuss
How a simple CRDT algorithm unlocks something surprisingly powerful: AI agents that learn from each other without ever talking to each other.
marcobambini
·hace 3 meses·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
·hace 4 meses·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
·hace 4 meses·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
·hace 5 meses·discuss
Author here... it is free for open-source projects.

What kind of license would you like more?
marcobambini
·hace 7 meses·discuss
If you don't understand what we are building, that doesn't mean you need to post such an inappropriate comment.
marcobambini
·hace 7 meses·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
·hace 7 meses·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
·hace 7 meses·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
·hace 7 meses·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
·hace 9 meses·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
·hace 9 meses·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
·hace 10 meses·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
·hace 10 meses·discuss
We are backed by the SQLite author (Dr. Richard Hipp), and we have full rights to use the SQLite name.
marcobambini
·hace 10 meses·discuss
Instead of sqlite-vec you can take a look at the new sqlite-vector extension: https://substack.com/home/post/p-172465902
marcobambini
·hace 10 meses·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
·hace 11 meses·discuss
There is a new solution that is worth considering: https://github.com/sqliteai/sqlite-sync

P.S. I am the author