An experiment creating a multi-model database to object mapper for Dart. The current focus is graph databases with an Elasticsearch companion, but document databases are a big interest too.
- PODO (Plain Old Dart Objects)
- Polymorphism (you get an instance of the same class that you saved it with)
- Clear interfaces for interchangeability
- Minimum support for bool, num, String, DateTime, GeoPoint, Type as property types. Can be further extended by the database adapter.
- Edge objects
- Undirected edges
The interface is built in layers, the top level beeing DbSession and Repository. Under are model-specific versions like GraphDbSession and GraphRepository. Code that only depends on DbSession should be usable with all database adapters, code that depends only on GraphDbSession should be usable with all graph database adapters. There are a rich test suite that verifies that adapters conform to the specified interface.
Se the example folder for a descriptive and simple example. The conformance tests for a collection of small, isolated examples. Look up the api documentation for detailed descriptions.
Currently there is only a graph database Neo4j adapter, an ElasticSearch companion adapter and a provided mock adapter for use in tests.
- RavenDB
- Entity Framework
- Spring Data
Licenced under Apache 2. Please file use cases, thoughts, ideas or issues at the issue tracker.