https://github.com/imclint21/fluid-db
FluidDB is a dynamic object storage database.
https://github.com/imclint21/fluid-db
binary-data-store key-value nosql-data-storage nosql-database object-storage rust
Last synced: 3 months ago
JSON representation
FluidDB is a dynamic object storage database.
- Host: GitHub
- URL: https://github.com/imclint21/fluid-db
- Owner: imclint21
- Created: 2023-02-04T15:26:53.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-05T23:17:51.000Z (over 2 years ago)
- Last Synced: 2025-02-13T17:30:00.238Z (5 months ago)
- Topics: binary-data-store, key-value, nosql-data-storage, nosql-database, object-storage, rust
- Language: Rust
- Homepage:
- Size: 13.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
About FluidDB
FluidDB is a dynamic object storage database. 🦀
## Introduction
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 →](https://medium.com/@clint21/lucid-an-http-key-value-store-c0e734586e26)
## Proof of Concept
This is a simple proof-of-concept written in c#:
```csharp
// 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);
```