Add in-memory heap storage implementation #20
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds an in-memory heap storage implementation for V8 heap snapshots, providing a fast, zero-configuration storage option ideal for development, testing, and ephemeral workloads.
Changes
New Implementation
InMemoryHeapStorage: Thread-safe in-memory storage usingHashMapwithArc<RwLock>HeapStoragetrait for seamless integrationAnyHeapStorageenum asInMemoryvariantCLI Updates
--in-memoryflag to enable in-memory storage--s3-bucket,--directory-path,--stateless)API Features
Core methods:
put(name, data)- Store heap snapshotget(name)- Retrieve heap snapshotAdditional utilities:
len()- Get number of stored itemsis_empty()- Check if storage is emptyclear()- Remove all stored datacontains_key(name)- Check if key existsremove(name)- Remove specific itemkeys()- Get all stored keysTesting
AnyHeapStorageDocumentation
IN_MEMORY_STORAGE.mdwith:Benefits
Limitations
Usage
Testing
cargo test -p server heap_storage