FluidDB is a dynamic object storage database. 🦀
FluidDB is a simple database engine that handles the storage of dynamic objects. It is possible to store server logs as well as mp3 files. To do this, the user must define a model for each collection as well as a serializer / deserializer.
Read the complete Medium article →
This is a simple proof-of-concept written in c#:
// This is the PoC of FluidDB — Written by clint21.eth on February, 4th 2023
// ReSharper disable All
using System.Text.RegularExpressions;
var client = new FluidDbClient();
// 230204222038.948 3290 00000 user1 51.158.154.391:49024 104.18.7.129:443 2115 76835 0 CONNECT www.google.fr:443 HTTP/1.1
var logModel = DatabaseModel.FromRegex(@"\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}|\Z)");
var logsCollection = client.CreateCollection("logs", logModel);
logsCollection.Push("230204222038.948 7427 00000 hp_b09d66e3 51.158.154.191:49024 104.18.7.94:443 2115 76835 0 CONNECT www.carrefour.fr:443 HTTP/1.1");
logsCollection.Find(""); // Nothing for now
// Example with binary files
var rihanna = File.ReadAllBytes("~/sounds/rihanna-unfaithful.mp3");
var mp3Model = new DatabaseModel();
var soundsCollection = client.CreateCollection("mp3s", CollectionTypes.Binary);
soundsCollection.Push(rihanna);