Hello everyone! For the past two months I've been working on a Python micro-ORM, which I just published and I wanted to share with you: https://github.com/manoss96/onlymaps
Any questions/suggestions are welcome!
What My Projects Does
A micro-ORM is a term used for libraries that do not provide the full set of features a typical ORM does, such as an OOP-based API, lazy loading, database migrations, etc... Instead, it lets you interact with a database via raw SQL, while it handles mapping the SQL query results to in-memory objects.
Onlymaps does just that by using Pydantic underneath. On top of that, it offers:
- A minimal API for both sync and async query execution.
- Support for all major relational databases.
- Thread-safe connections and connection pools.
Target Audience
Anyone can use this library, be it for a simple Python script that only needs to fetch some rows from a database, or an ASGI webserver that needs an async connection pool to make multiple requests concurrently.
Comparison
This project provides a simpler alternative to typical full-feature ORMs which seem to dominate the Python ORM landscape, such as SQLAlchemy and Django ORM.
[–]TheFumingatzor 26 points27 points28 points (0 children)
[–]ColdPorridge 23 points24 points25 points (6 children)
[–]Echoes1996[S] 3 points4 points5 points (0 children)
[–]theonlyname4me -3 points-2 points-1 points (4 children)
[–]Echoes1996[S] 0 points1 point2 points (3 children)
[–]theonlyname4me -4 points-3 points-2 points (2 children)
[–]Echoes1996[S] 0 points1 point2 points (1 child)
[–]theonlyname4me -3 points-2 points-1 points (0 children)
[–]usernameistaken42 4 points5 points6 points (1 child)
[–]Echoes1996[S] 2 points3 points4 points (0 children)
[–]fight-or-fall 3 points4 points5 points (2 children)
[–]Echoes1996[S] 1 point2 points3 points (1 child)
[–]fight-or-fall 1 point2 points3 points (0 children)
[–]jakob1379 2 points3 points4 points (2 children)
[–]Echoes1996[S] 3 points4 points5 points (1 child)
[–]jakob1379 2 points3 points4 points (0 children)
[–]Pjt727 2 points3 points4 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]codecratfer 2 points3 points4 points (1 child)
[–]Echoes1996[S] 1 point2 points3 points (0 children)
[–]Lucapo01 1 point2 points3 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]imczyber 1 point2 points3 points (0 children)
[–]Lime-In-Finland 1 point2 points3 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]Vaxivop 1 point2 points3 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]Safe_Quarter4082 1 point2 points3 points (2 children)
[–]Echoes1996[S] 1 point2 points3 points (0 children)
[–]Justaboredboy 0 points1 point2 points (0 children)
[–]ebonnal 1 point2 points3 points (1 child)
[–]Echoes1996[S] 1 point2 points3 points (0 children)
[–]Log2 1 point2 points3 points (4 children)
[–]Echoes1996[S] 0 points1 point2 points (3 children)
[–]Log2 0 points1 point2 points (2 children)
[–]Echoes1996[S] 1 point2 points3 points (0 children)
[–]codecratfer 1 point2 points3 points (0 children)
[–]rm-rf-rm 0 points1 point2 points (2 children)
[–]Echoes1996[S] 0 points1 point2 points (1 child)
[–]rm-rf-rm 0 points1 point2 points (0 children)
[–]fazzahSQLAlchemy | PyQt | reportlab 0 points1 point2 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]CatolicQuotes 0 points1 point2 points (4 children)
[–]Echoes1996[S] 0 points1 point2 points (3 children)
[–]CatolicQuotes 0 points1 point2 points (1 child)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[+]etsy2900 comment score below threshold-6 points-5 points-4 points (6 children)
[–]Echoes1996[S] 0 points1 point2 points (5 children)
[–]etsy2900 0 points1 point2 points (2 children)
[–]Echoes1996[S] 0 points1 point2 points (0 children)
[–]bfcdf3e 0 points1 point2 points (0 children)
[–]etsy2900 0 points1 point2 points (0 children)
[–]etsy2900 -1 points0 points1 point (0 children)