eeCLOUD 3.3.2
dotnet add package eeCLOUD --version 3.3.2
NuGet\Install-Package eeCLOUD -Version 3.3.2
<PackageReference Include="eeCLOUD" Version="3.3.2" />
<PackageVersion Include="eeCLOUD" Version="3.3.2" />
<PackageReference Include="eeCLOUD" />
paket add eeCLOUD --version 3.3.2
#r "nuget: eeCLOUD, 3.3.2"
#:package eeCLOUD@3.3.2
#addin nuget:?package=eeCLOUD&version=3.3.2
#tool nuget:?package=eeCLOUD&version=3.3.2
eeCLOUD
eeCLOUD is a .NET library that provides a high-performance logical storage engine, inspired by the concept of a virtual EEPROM. It is designed to manage large volumes of data in a simple, fast, and scalable way.
eeCLOUD is not a traditional ORM and not a simple key-value store. It introduces an address-based persistence model, built for real-world performance and modern workloads.
🚀 Core Concepts
Memory
A Memory is the logical equivalent of a table. It represents an addressable storage space rather than a rigid schema.
Memory = Virtual EEPROM
MemoryArea
A MemoryArea represents a record inside a Memory. It contains the actual data, stored in JSON format (schema-less).
Address
- Type:
long - Primary Key
- Unique and monotonic
- Simulates a physical memory address
The address is the true physical identifier of the data.
Index
- Type:
string(commonly a GUID) - Unique logical identifier
- Used for semantic lookups and integrations
ID
- Type:
string - Not unique
- Indexed
- Useful for grouping and NoSQL-style queries
Reference
- Type:
long - Direct reference to the
addressof another Memory - Enables instant relationships without joins
Date vs Create
date: logical or business date of the data (event time)create: actual persistence timestamp
date is indexed and commonly used for range queries.
🧩 Cluster Storage
eeCLOUD supports clustered storage to improve scalability and performance.
Cluster Creation (Write)
Clusters are created only during write operations by explicitly enabling clustering:
clusterized: true
When clusterized is enabled:
- The main Memory table stores only indexes and addresses
- The actual data is written into a cluster table
- Cluster tables are created automatically when needed
Example:
orders -> index-only table
orders§c_0 -> data cluster
orders§c_1 -> data cluster
orders§c_2 -> data cluster
The target cluster is calculated mathematically from the generated address.
Automatic Cluster Resolution (Read)
During read operations, no cluster flag is required.
The read process is fully automatic:
- eeCLOUD automatically resolves the correct cluster table
- Data is transparently loaded from the corresponding cluster
This makes clustered storage completely transparent for consumers.
⚙️ Configuration
var config = new Config
{
server = "192.168.1.10",
username = "dbuser",
password = "dbpassword",
type = ServerType.PostgreSQL,
clusterSize = 100000
};
server
- Format:
IPorIP:PORT - If port is omitted, the default port for the selected engine is used
username / password
Credentials used to connect to the selected backend engine.
- The user must exist on the backend
- The user must have privileges to create databases and tables
Security notes:
- Credentials are used only locally
- They are never sent to external services
- eeCLOUD does not connect to proprietary services
clusterSize
Defines the maximum number of records per cluster. Used to calculate the target cluster table from the address.
🗄️ eeCACHE (Important)
eeCACHE is an optional persistent cache engine for eeCLOUD. It is disabled by default.
To enable caching, an implementation of IeeCACHE must be explicitly injected
when creating the Application instance.
var cache = new eeCACHE();
var app = new Application(config, cache);
Architecture
eeCACHE uses a dual-layer architecture:
In-memory layer
- Extremely fast
- Valid only while the process is running
- Supports expiration (TTL)
Persistent layer
- Stored locally using memory-mapped files
- Automatically restored on process restart
- Shared across multiple processes on the same machine
Usage Modes
eeCACHE as primary backend
config.type = ServerType.eeCACHE;
- eeCACHE acts as the main storage engine
- No external database is required
eeCACHE with SQL backend
- The database is the source of truth
- eeCACHE acts as a read/write accelerator
- Cache is synchronized from the database on restart
Security
- No network access
- No external services
- No telemetry
- All data is stored locally
📚 When to Use eeCLOUD
Recommended for:
- IoT platforms
- Event logging
- Session storage
- Semi-structured data
- High-throughput systems
Not intended for:
- Complex SQL joins
- Traditional relational modeling
- Heavy analytical reporting
🔧 Supported Backends
- PostgreSQL
- MySQL
- SQL Server
- eeCACHE
- FTP (binary storage)
🔗 Links
- Website: https://eecloud.io
- API reference: https://eecloud.io/docs
Made with ❤️ by Giovanni Petruzzellis
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- FluentFTP (>= 53.0.2)
- MySqlConnector (>= 2.5.0)
- Npgsql (>= 9.0.4)
- System.Data.SqlClient (>= 4.9.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.3.2 | 83 | 1/2/2026 |
| 3.2.0 | 166 | 11/23/2025 |
| 3.1.9 | 190 | 10/28/2025 |
| 3.1.8 | 173 | 10/21/2025 |
| 3.1.6 | 175 | 10/20/2025 |
| 3.1.5 | 100 | 10/18/2025 |
| 3.1.4 | 185 | 10/15/2025 |
| 3.1.3 | 181 | 10/13/2025 |
| 3.1.1 | 209 | 9/7/2025 |
| 3.1.0 | 232 | 9/4/2025 |
| 3.0.9 | 300 | 8/11/2025 |
| 3.0.8 | 182 | 7/30/2025 |
| 3.0.7 | 255 | 6/21/2025 |
| 3.0.6 | 213 | 5/27/2025 |
| 3.0.3 | 558 | 3/25/2025 |
| 2.0.1 | 210 | 2/15/2025 |
| 2.0.0 | 203 | 11/10/2024 |
| 1.9.9.9 | 180 | 11/5/2024 |
| 1.9.9.8 | 229 | 10/13/2024 |
| 1.9.9.7 | 211 | 9/9/2024 |
| 1.9.9.6 | 188 | 9/7/2024 |
| 1.9.9.5 | 200 | 9/7/2024 |
| 1.9.9.4 | 210 | 6/22/2024 |
| 1.9.9.3 | 208 | 5/21/2024 |
| 1.9.9.1 | 218 | 3/25/2024 |
| 1.9.7 | 223 | 2/1/2024 |
| 1.9.6 | 267 | 1/6/2024 |
| 1.9.5 | 236 | 1/1/2024 |
| 1.9.4 | 233 | 12/16/2023 |
| 1.9.3 | 198 | 11/13/2023 |
| 1.9.2 | 151 | 11/12/2023 |
| 1.9.1 | 194 | 10/13/2023 |
| 1.8.1 | 198 | 9/29/2023 |
| 1.7.9 | 203 | 9/14/2023 |
| 1.7.3 | 206 | 8/18/2023 |
| 1.6.2 | 212 | 8/14/2023 |
| 1.5.6 | 198 | 7/31/2023 |
| 1.5.5 | 227 | 7/31/2023 |
| 1.5.4 | 217 | 7/27/2023 |
| 1.5.3 | 220 | 7/26/2023 |
| 1.5.2 | 221 | 7/19/2023 |
| 1.4.1 | 248 | 6/13/2023 |
| 1.4.0 | 454 | 11/9/2022 |
| 1.3.4 | 492 | 8/26/2022 |
| 1.3.3 | 513 | 8/23/2022 |
| 1.3.2 | 471 | 8/17/2022 |
| 1.3.1 | 475 | 8/17/2022 |
| 1.3.0 | 607 | 8/17/2022 |
| 1.1.5 | 714 | 2/11/2022 |
| 1.1.3 | 717 | 1/27/2022 |
| 1.1.2 | 952 | 12/31/2020 |
| 1.1.1 | 952 | 8/25/2020 |
| 1.1.0 | 1,248 | 7/27/2020 |
| 1.0.7 | 679 | 6/22/2020 |
Package Update