HackerTrans
TopNewTrendsCommentsPastAskShowJobs

marcobambini

4,973 karmajoined 12 năm trước
https://marcobambini.com

Submissions

Measuring and Reducing CPU Usage in SQLite

sqlite.org
2 points·by marcobambini·6 ngày trước·0 comments

SQLite Databases for Humans and Agents

marcobambini.substack.com
3 points·by marcobambini·10 ngày trước·0 comments

Rethinking Databases for Humans and AI Agents

marcobambini.substack.com
2 points·by marcobambini·11 ngày trước·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
4 points·by marcobambini·tháng trước·1 comments

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

marcobambini.substack.com
2 points·by marcobambini·tháng trước·0 comments

The Cloud vs. Edge Debate Is Over

marcobambini.substack.com
2 points·by marcobambini·2 tháng trước·1 comments

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

github.com
3 points·by marcobambini·2 tháng trước·0 comments

Show HN: SQLite-Columnar – Columnar Storage for SQLite

github.com
4 points·by marcobambini·2 tháng trước·0 comments

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

github.com
2 points·by marcobambini·2 tháng trước·0 comments

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

github.com
2 points·by marcobambini·2 tháng trước·0 comments

[untitled]

1 points·by marcobambini·2 tháng trước·0 comments

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

vectors.space
1 points·by marcobambini·2 tháng trước·0 comments

Show HW: LiteParser – An embeddable SQLite parser

github.com
2 points·by marcobambini·2 tháng trước·0 comments

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

github.com
24 points·by marcobambini·2 tháng trước·9 comments

A New SQLite Parser

marcobambini.substack.com
1 points·by marcobambini·3 tháng trước·0 comments

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

marcobambini.substack.com
2 points·by marcobambini·3 tháng trước·1 comments

That Time Is Gone

marcobambini.substack.com
2 points·by marcobambini·3 tháng trước·0 comments

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

github.com
4 points·by marcobambini·3 tháng trước·0 comments

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

github.com
10 points·by marcobambini·3 tháng trước·1 comments

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

2 points·by marcobambini·3 tháng trước·0 comments

comments

marcobambini
·3 tháng trước·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 tháng trước·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 tháng trước·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 tháng trước·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 tháng trước·discuss
Author here... it is free for open-source projects.

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

P.S. I am the author