A thin, explicit ORM layer for modern C++
No magic · No hidden queries · No performance tax
Vix ORM is the optional object-mapping layer of Vix.cpp.
It provides a lightweight, intentional abstraction on top of Vix DB for developers who want:
- cleaner domain models
- structured repositories
- safer data access patterns
…without giving up control, predictability, or performance.
Vix ORM is not designed to hide the database. It is designed to organize your code, not obscure what happens underneath.
Most ORMs today:
- try to abstract SQL completely
- generate complex, unpredictable queries
- hide transactions and connections
- make performance issues hard to diagnose
Vix ORM takes a different path.
SQL is still there. The database is still visible. The cost model stays explicit.
You always know:
- when a query runs
- inside which transaction
- on which connection
- with which performance implications
Vix ORM is intentionally thin.
It focuses on:
- mapping rows to objects
- organizing queries in repositories
- grouping operations with unit-of-work patterns
It does not:
- invent its own query language
- auto-generate schemas
- introduce runtime reflection
- enforce a specific architecture
You stay in control.
Vix ORM is powered by Vix DB, the low-level database layer of Vix.cpp.
That means:
- explicit transactions
- predictable pooling behavior
- no hidden drivers
- no duplicate database logic
If you ever outgrow the ORM, you can drop down to Vix DB without rewriting your application.
Vix ORM is a good fit if you:
- want structure without magic
- prefer repositories over raw SQL everywhere
- value performance and debuggability
- build long-lived C++ systems
- dislike “active record everywhere” patterns
If you want full control, you can skip it. If you want light structure, it’s there.
Vix ORM is built with modern C++ principles:
- C++20
- explicit ownership
- RAII for safety
- compile-time clarity
- minimal abstractions
No macros. No code generation. No runtime surprises.
Vix ORM is an optional module of Vix.cpp.
It integrates seamlessly with:
- Vix Core
- Vix DB
- Vix CLI
- WebSocket & network modules
Use only what you need.
Vix ORM is built automatically when enabled through the Vix.cpp umbrella.
For setup, examples, and usage, start from the main repository:
👉 https://github.com/vixcpp/vix
If you believe ORMs should be:
- explicit
- predictable
- performance-aware
please consider starring Vix.cpp.
MIT License