Home
Introduction
pydangorm is a robust and user-friendly asynchronous ORM (Object-Relational Mapping) system tailored
for ArangoDB, a powerful
multi-model NoSQL database.
pydangorm is inspired by SQLAlchemy, a popular ORM system for SQL databases, It aims to provide a similar experience
Main Libraries
pydangorm is built upon the foundation of two primary libraries:
-
pydantic: An extremely popular data validation and settings management library for Python. In
pydangorm, pydantic is utilized to provide robust model definitions and validation, ensuring that data interactions are clean, consistent, and error-free. -
aioarango: An asynchronous driver for ArangoDB. It powers the core interactions with the ArangoDB database, making it possible for
pydangormto support asynchronous database operations, ensuring optimized I/O-bound tasks.
Features
-
Database Modeling: Easily define, validate, and interact with your database models. This includes support for both vertex and edge models (
VertexModelandEdgeModel). -
Pythonic Query Building: Constructing queries for ArangoDB in a SQLAlchemy way. With a Pythonic API, you can effortlessly build complex queries to retrieve or manipulate your data.
-
Session Management: Manage your database sessions and connections with ease. Whether it's connecting to the database or handling transactions,
pydangormhas got you covered. -
Collection Management: From creating indices to truncating collections, manage all your collection operations without hassle.
-
Asynchronous Support:
pydangormis designed for the modern web. With full asynchronous support, your I/O-bound database tasks will be lightning fast, ensuring your applications remain responsive and scalable. -
Lazy Loading:
pydangormsupports lazy loading, ensuring that data is only fetched when needed, optimizing performance and reducing memory usage.
Roadmap
- Support for
AQL Query Building including trversal - Support for
VertexModelandEdgeModel - Support for
VertexModelrelationships viaEdgeModel - Support for
Model Saving and Updating (single instance) - Support for
Model Saving and Updating (with relations) - Support for
Model Deletion (single instance) - Support for
Model Fetching (single instance) - Support for
Model Fetching with relations and traversal - Support for
Model Graph CRUD Operations - Support for
Model Deletion Cascade - Support for
pydanticv2.0 - Support for
Model Back Population
Contributions
We're actively looking for contributors to help improve pydangorm and expand its capabilities.
Whether you're a seasoned developer or just starting out, your contributions are valuable to us.
If you have ideas for new features,
optimizations, or simply want to fix a bug, please check our contribution guidelines or reach out. Together, we can make
pydangorm the best ArangoDB ORM for Python!