HackerTrans
TopNewTrendsCommentsPastAskShowJobs

marcobambini

4,973 karmajoined 12 lat temu
https://marcobambini.com

Submissions

Measuring and Reducing CPU Usage in SQLite

sqlite.org
2 points·by marcobambini·6 dni temu·0 comments

SQLite Databases for Humans and Agents

marcobambini.substack.com
3 points·by marcobambini·10 dni temu·0 comments

Rethinking Databases for Humans and AI Agents

marcobambini.substack.com
2 points·by marcobambini·11 dni temu·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
4 points·by marcobambini·w zeszłym miesiącu·1 comments

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

marcobambini.substack.com
2 points·by marcobambini·w zeszłym miesiącu·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
2 points·by marcobambini·2 miesiące temu·1 comments

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

github.com
3 points·by marcobambini·2 miesiące temu·0 comments

Show HN: SQLite-Columnar – Columnar Storage for SQLite

github.com
4 points·by marcobambini·2 miesiące temu·0 comments

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

github.com
2 points·by marcobambini·2 miesiące temu·0 comments

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

github.com
2 points·by marcobambini·2 miesiące temu·0 comments

[untitled]

1 points·by marcobambini·2 miesiące temu·0 comments

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

vectors.space
1 points·by marcobambini·2 miesiące temu·0 comments

Show HW: LiteParser – An embeddable SQLite parser

github.com
2 points·by marcobambini·2 miesiące temu·0 comments

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

github.com
24 points·by marcobambini·2 miesiące temu·9 comments

A New SQLite Parser

marcobambini.substack.com
1 points·by marcobambini·3 miesiące temu·0 comments

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

marcobambini.substack.com
2 points·by marcobambini·3 miesiące temu·1 comments

That Time Is Gone

marcobambini.substack.com
2 points·by marcobambini·3 miesiące temu·0 comments

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

github.com
4 points·by marcobambini·3 miesiące temu·0 comments

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

github.com
10 points·by marcobambini·3 miesiące temu·1 comments

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

2 points·by marcobambini·3 miesiące temu·0 comments

comments

marcobambini
·3 miesiące temu·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 miesiące temu·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 miesiące temu·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 miesiące temu·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 miesięcy temu·discuss
Author here... it is free for open-source projects.

What kind of license would you like more?
marcobambini
·7 miesięcy temu·discuss
If you don't understand what we are building, that doesn't mean you need to post such an inappropriate comment.
marcobambini
·7 miesięcy temu·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 miesięcy temu·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 miesięcy temu·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 miesięcy temu·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 miesięcy temu·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 miesięcy temu·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 miesięcy temu·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 miesięcy temu·discuss
We are backed by the SQLite author (Dr. Richard Hipp), and we have full rights to use the SQLite name.
marcobambini
·10 miesięcy temu·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 miesięcy temu·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 miesięcy temu·discuss
There is a new solution that is worth considering: https://github.com/sqliteai/sqlite-sync

P.S. I am the author