1 Commits
v1 ... main

Author SHA1 Message Date
9216cd1638 Added Roadmap 2025-10-13 15:32:35 +00:00

View File

@@ -174,10 +174,60 @@ The BinaryTable uses a custom binary format optimized for random access:
- **Concurrent Access**: Single-threaded access only - **Concurrent Access**: Single-threaded access only
- **Type System**: Limited compared to JSON (no nested objects, mixed arrays) - **Type System**: Limited compared to JSON (no nested objects, mixed arrays)
## Future Roadmap # SweepStore Roadmap
- Full JSON parity with nested objects and mixed-type arrays ## v1.0.0 (Current)
- Compression support for large data blocks - ✅ Key-value storage with hash-based indexing
- Checksums and data integrity validation - ✅ Uniform arrays with random access
- Multi-threaded access with file locking - ✅ Automatic memory management via free list
- Query system for complex data retrieval - ✅ Single file format (.sws)
## v2.0.0 (Planned)
### Core Changes
- **Nested objects** - Store objects within objects for hierarchical data
- **Key enumeration** - Query and list all keys without knowing them upfront
- **Object-based architecture** - Each object has its own address table and key list
### File Format Changes
```
v1: Global address table → All keys at root level
v2: Root object → Each object manages its own keys
```
### New API
```dart
// Nested objects
table["player"] = {};
table["player"]["name"] = "Alice";
table["player"]["inventory"] = {};
// Key discovery
List<String> keys = table.keys();
bool exists = table.containsKey("player");
// Object operations
BT_Object player = table["player"];
for (String key in player.keys()) {
print("$key: ${player[key]}");
}
```
### Implementation Strategy
- Introduce `BT_Object` type with embedded address table + key list
- `BinaryTable` becomes wrapper around root object
- Maintain global free list (not per-object)
- Address table entries remain absolute pointers
- Key list stored alongside each object's address table
### Breaking Changes
- File format incompatible with v1.0.0
- API remains largely the same (only additions)
- Migration tool needed for v1 → v2 files
## Future Considerations
- Hash collision resolution
- Checksums for data integrity
- Optimized allocation strategies
- Incremental array resizing
- Compression options