3

I am about to choose a database solution for my c# project:

  • to store simple configuration at first, bools, ints, paths etc.
  • to store lots of small text blocks in the future
  • probably to store small pictures in the future too

I need the database:

  • to be lightweight
  • to be embedded
  • to be created per each user
  • not to be used by more than one user at time
  • to be free or very cheap
  • transactions to be reliable
  • to be scalable
  • to be encrypted or at least masked

Initially I thought about some NoSQL, text databases but is it the correct path? How about SQLite or other solutions? Since the database must be embedded I shall probably choose from:

  • SQLite
  • SQL Server Compact
  • Firebird Embedded
  • Couchbase Lite
  • LiteDB

LiteDB has got it all: it's lightweight, modern, noSQL, scalable, encryption is out of the box and supports .NET Core. Couchbase needs Enterprise Edition for encryption and the other databases are SQL or/and obsolete.

Does LiteDB have any cons?

  • What does "scalable" mean for you? Is it 1 GB of data, 8 GB, 256 GB or 2 TB? Or is it for load distribution on 2 servers, 20 servers, 100 servers? Or is it 10 simultenous users, or 1000 users or 1.000.000 users at the same time? – Thomas Weller Jun 15 at 18:46
  • I hope you know about the CAP theorem. Can you tell which 2 of those 3 properties are important to you? By "reliable transactions" I would imply that consistency is one of them. – Thomas Weller Jun 15 at 18:50
  • The question has been edited. I think I'll go with LiteDB, what do You think about my choice? – WackyJohn Jun 16 at 9:17
0

Not sure if it would fit your requirements, and I hope it's not bad form to recommend something I have developed, but over the last few months I have been developing a simple, fast SQL database written in C#. By simple, I mean that avoided all complexities that I feel I don't need, such as NULL, and I have also tried to keep the source code simple and easy to understand, so anyone can easily add features they need ( it doesn't have encryption currently ). It's here: https://github.com/georgebarwood/Database

| improve this answer | |
  • 1
    Thank for Your input. – WackyJohn Jun 16 at 9:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.