Added Roadmap
This commit is contained in:
62
README.md
62
README.md
@@ -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
|
||||
Reference in New Issue
Block a user