You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+17-12Lines changed: 17 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,30 @@
1
1
# ***Blue Crab by Fossil Logic***
2
2
3
-
Blue Crab is a lightweight, portable key-value database built for speed, efficiency, and ease of use. It offers multiple interfaces to fit different workflows: **MyShell** for SQL-like commands, **NoShell** for direct key-value operations, **TimeShell** for timestamped time-series data, **CacheShell** for in-memory caching with TTL support, and **FileShell** for straightforward file management. Its book-inspired structure, where each entry resembles a page, makes organizing and accessing data intuitive, while maintaining high performance across both small and large datasets.
3
+
Blue Crab is a lightweight, portable key-value database built for speed, efficiency, and traceable data integrity.
4
+
It offers multiple interfaces to fit different workflows: **MyShell** for SQL-like commands with structured FSON queries,
5
+
**NoShell** for direct key-value operations backed by a git-chain commit model, and **CacheShell** for in-memory caching with TTL and optional FSON serialization.
6
+
7
+
Powered by the **git-chain experiment**, every change in Blue Crab can be versioned, branched, and merged like source code —
8
+
enabling transparent history, rollback, and auditability. The integrated **FSON type system** provides self-describing, schema-aware data structures
|**Portability & Cross-Platform**|Works across different operating systems, offering seamless performance with minimal dependencies. | Works across various platforms without external dependencies, ensuring smooth performance. | Lightweight and portable, optimized for time-series storage with minimal dependencies.| Highly portable in-memory caching, works on multiple platforms with minimal overhead. | Portable file-based storage, works across OSes without external dependencies.|
10
-
|**Interface**| SQL-like command interface, ideal for users familiar with relational databases. | Direct key-value CRUD operations with a minimalistic approach, no query language required. | Time-series oriented interface, supports timestamped insertions and queries. | Key-value interface optimized for fast retrieval and TTL management. | Simple file read/write/append/delete interface for persistent storage.|
11
-
|**CRUD Operations**| Insert, find, update, and delete key-value pairs with SQL-like commands. | Perform CRUD operations using direct key-value access. | Insert, query, and delete timestamped records efficiently. | Insert, get, update, and remove cache entries with optional TTL. | Write, append, read, and delete files directly. |
12
-
|**Backup and Restore**|Supports backup and restore features using MyShell's command-line interface. | Allows for easy backup and restore of database files with no query overhead. | Supports backup and restore of time-series data files. | Optional persistence to disk can be implemented; otherwise in-memory only. | Files are directly persistent; backup and restore can be done using file copy operations.|
13
-
|**API**| Intuitive API designed for SQL-like interaction. | Simple API for minimalistic key-value operations. | API provides timestamp-aware insertions, queries, and iteration. | Simple, fast API for cache access and TTL operations. | Straightforward API for basic file manipulation. |
14
-
|**Memory Management**| Optimized for low memory usage and fast access, even with large datasets. | Ensures efficient memory usage and performance, even with direct key-value access. | Optimized for sequential time-series data; minimal memory overhead per record. | In-memory store, optimized for fast access and efficient memory usage; supports TTL cleanup. | Efficient for file-based operations; memory usage depends on file buffering strategy. |
15
-
|**Database Management**| Full support for creating, opening, closing, and deleting databases, as well as managing backups. | Supports similar database management operations with a direct approach, including backups and restores. | Manage time-series databases including open/close and backup/restore of timestamped datasets. | Simple in-memory key-value store management; clear, count, and expire operations available. | Provides basic file management operations: check existence, size, list, and delete files. |
|**Portability & Cross-Platform**|Fully cross-platform, designed for integration across Linux, macOS, and Windows with minimal dependencies. | Portable and dependency-light, works consistently across OSes and embedded systems. | Lightweight and portable; in-memory cache functions identically across supported platforms. |
16
+
|**Interface**| SQL-like command interfacewith support for structured FSON queries and schema reflection.| Minimalist key-value interface now extended with FSON-based structured records and git-chain commit tracking. | Key-value and TTL-based interface, FSON-encoded for cross-shell interoperability.|
17
+
|**CRUD Operations**| Insert, find, update, and delete data using SQL-like commands, with git-chain-backed transactional history.| Perform direct CRUD operations with git-chain commit tracking and FSON record serialization for full auditability. | Insert, get, update, and remove cache entries; optionally commit snapshots into git-chain for audit persistence.|
18
+
|**Backup and Restore**|Backup and restore now handled via git-chain commits, enabling branchable database states and rollbacks. | Supports backup and restore through git-chain synchronization; each commit stores FSON diffs for efficient version tracking.| Optional persistence through git-chain snapshots; supports branch-based cache state restoration.|
19
+
|**API**| Intuitive C API supporting FSON object handling, commit/branch operations, and query execution layers.| Simple C API for direct CRUD and commit operations; includes git-chain and FSON helper utilities for structured data encoding/decoding.| Lightweight API for in-memory caching and TTL; includes optional FSON serialization hooks for structured cache objects.|
20
+
|**Memory Management**| Optimized for large datasets with internal FSON caching and incremental git-chain commit diffing to reduce memory footprint.| Memory-efficient design; uses incremental FSON serialization and diff-based commit tracking to minimize data duplication. | Efficient in-memory storage with periodic cleanup; supports TTL-based reclamation and optional FSON compression for cache entries.|
21
+
|**Database Management**| Full support for create, open, close, branch, merge, and delete operations via git-chain; each state stored as a structured FSON snapshot.| Supports open, close, sync, and merge of git-chain-backed databases; provides FSON-based schema introspection and consistency checks. | Simple cache lifecycle management with optional git-chain commit/merge support for replicable cache state management.|
16
22
17
23
## ***Prerequisites***
18
24
19
25
To get started, ensure you have the following installed:
20
26
21
27
-**Meson Build System**: If you don’t have Meson `1.8.0` or newer installed, follow the installation instructions on the official [Meson website](https://mesonbuild.com/Getting-meson.html).
22
-
-**Conan Package Manager**: If you prefer using Conan, ensure it is installed by following the instructions on the official [Conan website](https://docs.conan.io/en/latest/installation.html).
23
28
24
29
### Adding Dependency
25
30
@@ -34,7 +39,7 @@ Add the `fossil-crabdb.wrap` file in your `subprojects` directory and include th
0 commit comments