Minimal read-only LevelDB parser for Chrome's localStorage.
Reads .log (WAL) and .ldb (SSTable) files from a LevelDB directory, returning raw key-value records with sequence numbers and state.
Implements:
Reference: https://github.com/google/leveldb/blob/master/doc/ Based on: ccl_chromium_reader by CCL Forensics (MIT license)
Minimal read-only LevelDB parser for Chrome's localStorage. Reads .log (WAL) and .ldb (SSTable) files from a LevelDB directory, returning raw key-value records with sequence numbers and state. Implements: - Log file parsing (32KB blocks with CRC32/length/type headers) - SSTable parsing (footer, index, data blocks with prefix compression) - Snappy decompression (pure Java, no native dependencies) - Varint encoding (protobuf-style little-endian varints) Reference: https://github.com/google/leveldb/blob/master/doc/ Based on: ccl_chromium_reader by CCL Forensics (MIT license)
(read-le-varint stream)(read-le-varint stream google-32bit?)Reads a little-endian varint from stream. Returns nil at EOF.
Set google-32bit? true to limit to 5 bytes (32-bit varints).
Reads a little-endian varint from stream. Returns nil at EOF. Set `google-32bit?` true to limit to 5 bytes (32-bit varints).
(read-records dir-path)Reads all records from a LevelDB directory.
Returns a sequence of maps: {:key bytes, :value bytes, :seq long, :state :live/:deleted, :file-type :log/:ldb, :origin String, :offset long}
Records are yielded from all .log and .ldb files, sorted by file number.
Reads all records from a LevelDB directory.
Returns a sequence of maps:
{:key bytes, :value bytes, :seq long, :state :live/:deleted,
:file-type :log/:ldb, :origin String, :offset long}
Records are yielded from all .log and .ldb files, sorted by file number.(snappy-decompress compressed)Decompresses a raw Snappy-compressed byte array (NOT framed format). Returns decompressed byte array.
Decompresses a raw Snappy-compressed byte array (NOT framed format). Returns decompressed byte array.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |