The EODB is a database for storing objects.
- Ideal for structured, unstructured or singleton objects.
Uses binary format for highly compressed data storage.
- Does not use serialization.
- Makes "in the wild" database tampering hard because your data is it's own format.
Ideal for 10Mb or smaller databases
- Supports up to 2Gb databases
- BLOB support
By default, database is cached in memory
- This permits high speed LINQ enabled queries
- Supports uncached large databases
Does not use SQL:
- Does not require:
- Schemas,
- Tables
- Object Relational Mapping (ORM)
- Indexed searching ability with full LINQ support
Supports more than 2 dozen Attribute Types:
- Extensible to support additional types
- Convertible to transform internal types to storage types and back again
Supports read/writing recursive IEnumerable
- Such as hierarchical data represented by:
- Simple Lists: List<T> and Type[]
- Key Value Pairs: Dictionary<,> and SortedList<,>
- Compound Generics: Dictionary<T1,List<T2>>
Support complex types with automatic data conversion
- Transforming data between internal and storage formats.
Supports conditional indexing
- To include/exclude data for later searching
Supports more than one open databases at a time.
Supports database committing of a database to disk.
- Including a non-cached database.
- This allows you to save/load objects, then persist the entire database like a "save game".
Supports class versions
- Allows objects "in the wild" to be opened and processed when newer game versions have a different object formats.