#write-ahead-log #iterator #snapshot #storage #identifier #stateful #time

yanked wal-s

Implementation of write-ahead log based storage

2 unstable releases

0.2.0 Jul 24, 2022
0.1.1 Jul 18, 2022

#16 in #write-ahead-log

Custom license

45KB
1K SLoC

WAL-S

Implementation of write-ahead log based storage.

Features

  • Write-Ahead Log
  • Read snapshots
  • Write batching
  • Metadata support
  • Stateless iterators
  • Stateful iterators
  • Sliding window
  • Counter and time based identifiers
  • Distance metrics
  • Data exporting

Getting started

WALS::new("stream1", db)
    .snapshot()
    .iter()
    .for_each(|record| {
        let stream2 = WALS::from("stream2", db);
        let result = process(record);
        stream2.append(result);
    })
 stream
    .flush()
    .snapshot()
    .unwrap()
    .window(10, &StreamID::default())
    .for_each(|batch| {
        println!("size={}", batch.len());
        assert_eq!(batch.len(), 10);
        counter += 1;
    });

Docs

TBD

Dependencies

~28MB
~567K SLoC