A lightweight .NET library for storing and querying data in JSON flat files with support for typed and dynamic data.
JSON Flat File Data Store is a .NET library that provides a simple, file-based data storage solution using JSON files. It allows developers to perform CRUD operations, query data with LINQ, and manage collections without requiring a database server. It's designed for small applications, prototypes, and scenarios where a lightweight persistence layer is needed.
.NET developers building small applications, prototypes, or tools that need a simple, file-based data store without the overhead of a full database system.
Developers choose this library for its simplicity, zero-dependency approach, and familiar MongoDB-like API. It eliminates database setup complexity while providing essential data persistence features, making it perfect for rapid development and lightweight projects.
Simple JSON flat file data store with support for typed and dynamic data.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Eliminates database server dependencies by storing all data in a single JSON file, as highlighted in the README's 'File-Based Storage' feature, making it ideal for quick prototyping.
Offers a compact API inspired by MongoDB's C# driver, easing adoption for developers experienced with NoSQL databases and providing a smooth learning curve.
Supports both strongly-typed models and dynamic objects like ExpandoObject and anonymous types, allowing versatile data handling without rigid schemas.
Performs deep, case-insensitive searches across all properties in a collection, a feature not always present in lightweight storage solutions, as demonstrated in the README examples.
Provides security by encrypting JSON file content with AES-256, adding a layer of protection for sensitive data without external dependencies.
All data is loaded into memory for operations, which can lead to high RAM usage and scalability issues with large datasets, as admitted in the README's note on in-memory handling.
The README explicitly warns that multiple DataStore instances can become out of sync, making it unreliable for multi-user or concurrent scenarios without careful manual reloading.
Has known limitations with dictionary serialization to ExpandoObjects, complicating updates for nested data structures and requiring workarounds as described in the README.
Returns IEnumerable instead of IQueryable for dynamic types due to LINQ compatibility issues, limiting query efficiency and advanced composition, as noted in the README.