Skip to content

Commit 2b1901a

Browse files
Update README.md
1 parent 0be52dc commit 2b1901a

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

README.md

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
11
# ***Blue Crab by Fossil Logic***
22

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
9+
for both simple and complex records.
410

511
## Key Features
612

7-
| **Feature** | **MyShell** | **NoShell** | **TimeShell** | **CacheShell** | **FileShell** |
8-
|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
9-
| **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. |
13+
| **Feature** | **MyShell** | **NoShell** | **CacheShell** |
14+
|---------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------|
15+
| **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 interface with 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. |
1622

1723
## ***Prerequisites***
1824

1925
To get started, ensure you have the following installed:
2026

2127
- **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).
2328

2429
### Adding Dependency
2530

@@ -34,7 +39,7 @@ Add the `fossil-crabdb.wrap` file in your `subprojects` directory and include th
3439
```ini
3540
[wrap-git]
3641
url = https://github.com/fossillogic/fossil-crabdb.git
37-
revision = v0.2.4
42+
revision = v0.2.5
3843

3944
[provide]
4045
dependency_names = fossil-crabdb

0 commit comments

Comments
 (0)