Shared – Triptych for data exchange and persistence
Hi HN! I'm Alex, a tech enthusiast who likes to build stuff from scratch. Often my programs have data to store or a configuration file to read and/or edit. Therefore, I design relational databases [1] and write SQL queries to manage complex data with relationships, and for other needs, I used to do unmaintainable hacks (custom file formats) with plain old files. But that was before I discovered Pickle [2], the Python data serialization module. A simple way to store a representation of memory-living data collections on local disk. Therefore, Pickle became my favorite way to store data,…
In plain words
Shared is a data exchange and persistence tool designed as a language-agnostic alternative to Python's Pickle module. It allows developers to store and retrieve data collections from disk while enabling data sharing between programs written in different programming languages. The tool addresses the limitation of Pickle by supporting formats that work across language boundaries, making it useful for applications that need interoperable data storage and configuration management without relying on custom file formats or complex database queries.
written from the facts on this page · September 2026
From the sources
In the maker’s words, at launch
Hi HN! I'm Alex, a tech enthusiast who likes to build stuff from scratch. Often my programs have data to store or a configuration file to read and/or edit. Therefore, I design relational databases [1] and write SQL queries to manage complex data with relationships, and for other needs, I used to do unmaintainable hacks (custom file formats) with plain old files. But that was before I discovered Pickle [2], the Python data serialization module. A simple way to store a representation of memory-living data collections on local disk. Therefore, Pickle became my favorite way to store data, until one day I needed to exchange data with another program written in another language. Pickle is Python-specific by the way. Due to this embarrassing situation, I needed to find a way to "replace" Pickle. The new method should be language-agnostic. CSV [3], INI file [4] and JSON [5] respectively entered the room. As an open standard file format with a formal specification, JSON sounds very serious. The Internet speaks in JSON [6]. Therefore, I adopted JSON. So at this point, for my personal projects, I had SQLite for interaction with relational databases, files to store binary data, and JSON for everything else. But one thing is missing: a single tool to unify these APIs under the same umbrella, and so with a single installation I could do data persistence and exchange wherever I want. Instead of one, for aesthetic reasons, I built two libraries: Litedao for SQL related stuff and Shared for data collections (dict [7], set, list) and binary data. Litedao was designed to use SQLite and Shared to use JSON and files. I had from my point of view a smooth programmer experience when it came to the data of my personal programs. But since I need SQL less than JSON, the Litedao library caught my attention less. Therefore, more bugs have been fixed in Shared and more functionalities have been added. Due to this situation, I decided to integrate Litedao into Shared so that it could get more attention from me. It worked ! Therefore, Shared becomes a lightweight library for data exchange and persistence that smoothly handles collections (dict, list, set), binary data, and SQL queries. For aesthetic and functional reasons, Shared is a triptych whose classes share similar interfaces: Document, Dossier, and Database. The Document class allows individual access to files that are likely to be edited manually by a human, example: a configuration file. The Dossier class stores collections and binary data in a dossier without bothering the programmer about how the data is actually saved. The Database class allows interaction with SQLite databases. Among other functionalities, there is a command-line interface for exchanging data between programs, Autosave mode, Readonly mode, and Temporary Data mode. My project, still in Beta, is written in Python and I'm still working on it while using it intensively. Thanks for reading, let me know if you have any feedback and feel free to ask questions. [1] https://www3.ntu.edu.sg/home/ehchua/programming/sql/Relation... [2] https://docs.python.org/3/library/pickle.html [3] https://en.wikipedia.org/wiki/Comma-separated_values [4] https://en.wikipedia.org/wiki/INI_file [5] https://en.wikipedia.org/wiki/JSON [6] https://stackoverflow.blog/2022/06/02/a-beginners-guide-to-j... [7] https://docs.python.org/3/tutorial/datastructures.html#dicti...
More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 1d ago · opentrailpaper.com

Launched alongside, September 2022
the whole month →- IM
Life & fun · 2022 · dogbunnypuzzle.com
- IM
A couple of years ago, I had an interesting idea. What if there was a marketplace where all the underlying tech was open-source? The order management system, the storefront, customer support, etc. The marketplace would simply connect to the seller’s infra instead of locking them in. If, for some reason, the seller is removed from the marketplace, their software stays with them and they can continue accepting orders directly. This model can be used to disrupt any marketplace from AirBNB to UberEats: building tech for home renters and restaurants and later, leveraging that to build a competing…
Dev tools · 2022 · openship.org



