20
Introducing NeoSQLite (www.youtube.com)
submitted 1 month ago by cwt@lemmy.ml to c/python@programming.dev

Introducing NeoSQLite — a Python library with an API highly compatible with PyMongo, allowing you to use SQLite almost like MongoDB.
https://github.com/cwt/neosqlite This project integrates two of my other open-source projects:

  • fts5-icu-tokenizer (GitHub - cwt/fts5-icu-tokenizer: FTS5 ICU Tokenizer for SQLite (mirror) (https://github.com/cwt/fts5-icu-tokenizer)): An ICU-powered tokenizer for SQLite's FTS5, enabling full-text search support for languages worldwide. In NeoSQLite, it powers the $text operator for advanced multilingual search capabilities.

  • quez (GitHub - cwt/quez: Pluggable, compressed in-memory queues and deques for both sync and asyncio applications. (https://github.com/cwt/quez)): A tool that compresses SQLite query results, reducing memory usage by 50% to 80%, which is especially beneficial when working with large datasets.

NeoSQLite is ideal for lightweight, embeddable applications that need MongoDB-like query flexibility with the simplicity and portability of SQLite.

Feel free to check it out and share your feedback.

top 6 comments
sorted by: hot top controversial new old
[-] Valmond@lemmy.world 10 points 1 month ago

Why would you want to use No-SQL on an SQL database? Like for convenience only or are there some other benefits? They are wildly incompatible so do you only get the subset or is there some transformative magic done in the API?

[-] cwt@lemmy.ml 6 points 1 month ago

What you said is the old concept of relational databases. SQLite, years ago, added native JSON and JSON operations such as JSON_EXTRACT, JSON_EACH, JSON_SET, etc., which blurred the line between SQL and NoSQL. However, not many developers utilize it, so I'm trying to bring it to the easiness of PyMongo APIs. If you read the examples and test cases in my repo, you will no longer mention subsets. While it's true, I've already addressed most of them and am still progressing.

[-] Valmond@lemmy.world 3 points 1 month ago

Nice job!

What I was wondering about is the possibility to just chuck in any kind of data anywhere, or have gaping holes in some, which SQL isn't suspecting/allowing but NoSQL does.

[-] Botzo@lemmy.world 2 points 1 month ago

You're gonna hate/love learning about how Documentdb works (it's postgres with extensions).

[-] Valmond@lemmy.world 2 points 1 month ago

Ha ha I have worked with MongoDB and I dhad mixed feelings about the researcher who set up the database (just mix anything in anywhere) 😸

[-] cwt@lemmy.ml 2 points 1 month ago

20250903: I’ve made a lot of updates since my last post. Performance has improved thanks to the use of temp table. Please check it out and give it a try!

this post was submitted on 31 Aug 2025
20 points (100.0% liked)

Python

7508 readers
2 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS