{"repo":"katehonz/necto","free":true,"listed":false,"github":"https://github.com/katehonz/necto","clone":"git clone https://github.com/katehonz/necto.git","description":"ORM nim lang","language":"Nim","stars":12,"topics":["nim-lang","orm"],"license":"MIT","category":"databases-storage","readme_excerpt":"Necto 🍯 Multi-database ORM for Nim 2.x , inspired by Ecto (Elixir) and Avram (Crystal). Supports PostgreSQL , MariaDB/MySQL , and SQLite . --- Why Necto? The Crystal community built Avram — an Ecto-like ORM that made the language productive for web development years earlier. The Nim community deserves the same level of abstraction. Feature Necto Norm ActiveRecord --------- ------- ------ -------------- Repository Pattern ✅ ⚠️ ❌ Multi-database (PG, MySQL, SQLite) ✅ ❌ ⚠️ Multi-tenant ( schema prefix + tenant id ) ✅ ❌ ⚠️ Composable queries ✅ ❌ ⚠️ Subqueries (IN, EXISTS) ✅ ❌ ✅ CTEs (WITH) ✅ ❌ ✅ Row locks ( FOR UPDATE ) ✅ ❌ ✅ Changeset validations ✅ ❌ ⚠️ Type-safe preload ✅ ❌ ❌ Auto-preload macros ✅ ❌ ❌ Batch insert/update/delete ✅ ❌ ✅ Auth (bcrypt + JWT) + web helpers ✅ ❌ ⚠️ Pipe operator (Elixir-style) ✅ ❌ ❌ Reverse schema generation ✅ ❌ ❌ Lazy loading ❌ (by design) ✅ ✅ Necto does not do lazy loading. You always know when and how queries run. --- Architecture Component Responsibility Analog ----------- -------------- -------- Schema Defines tables, fields, types, relations Ecto.Schema Query Composable DSL for SELECT Ecto.Query Changeset Cast, validation, change tracking Ecto.Changeset Repo Connection, pool, transactions Ecto.Repo Migration Schema versioning Ecto.Migration --- Quick Start Installation Or locally: Requirements: Nim = 2.0.0, db connector (installed automatically). One of: PostgreSQL = 12, MariaDB/MySQL = 10.2, or SQLite = 3.25. 1. Define a Repo PostgreSQL: MariaDB","default_branch":null,"files":null,"tree":[],"storefront":"/r/katehonz","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/katehonz/necto/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}