A file system storage library for .NET Core/ASP.NET Core that eliminates the need for a database by storing objects as JSON files.
NoDb is a file system storage library for .NET Core/ASP.NET Core that enables developers to store objects as JSON files instead of using a traditional database. It solves the problem of unnecessary database overhead for small projects, prototypes, or low-traffic sites by providing a simple, portable, and easy-to-deploy storage solution. By serializing objects to disk, it reduces complexity and installation steps while maintaining flexibility.
.NET developers building personal blogs, small brochure sites, prototypes, or low-traffic applications where a database is overkill. It's also useful for developers who want to abstract data access for easy future migration to databases.
Developers choose NoDb for its simplicity, portability, and ease of integration with ASP.NET Core dependency injection. Its unique selling point is eliminating database dependencies entirely, reducing deployment friction and enabling scenarios like running sites from thumb drives or CD/DVDs.
a "no database" file system storage for .NET Core/ASP.NET Core because not every project needs a database
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 installation and seamlessly integrates with ASP.NET Core dependency injection, reducing initial setup time as shown in the Startup registration example.
Stores data as JSON files, enabling easy backups, site migrations, and even running applications from removable media like thumb drives, as highlighted in the rationale.
Defaults to NewtonSoft.Json but supports custom IStringSerializer implementations for complex types, allowing adaptation to different formats like XML or JSON as used in SimpleContent.
Components like IStoragePathResolver are decoupled, enabling overrides for file organization—e.g., storing blog posts in year/month folders to optimize memory usage.
The README explicitly states that NoDb does not provide caching, forcing developers to implement their own caching layer, which adds complexity and requires advanced DI containers like Autofac.
Admits that for high concurrent editing scenarios, a more robust solution is needed, as file-based storage can lead to conflicts and performance issues without locking mechanisms.
Relies on loading all data into memory for complex queries using Linq, which is inefficient for large datasets and lacks indexing or optimization features of traditional databases.