Added Roadmap

This commit is contained in:
2025-10-13 15:32:35 +00:00
parent a3f4b3308b
commit 9216cd1638

View File

@@ -174,10 +174,60 @@ The BinaryTable uses a custom binary format optimized for random access:
- **Concurrent Access**: Single-threaded access only
- **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
- Compression support for large data blocks
- Checksums and data integrity validation
- Multi-threaded access with file locking
- Query system for complex data retrieval
## v1.0.0 (Current)
- ✅ Key-value storage with hash-based indexing
- ✅ Uniform arrays with random access
- ✅ Automatic memory management via free list
- ✅ 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