https://github.com/al8n/orderwal
A generic-purpose, atomic, ordered, zero-copy read, zero-cost (in-place) write, Write-Ahead Log implementation for Rust.
https://github.com/al8n/orderwal
append-only append-only-log rust wal write-ahead-log
Last synced: about 1 year ago
JSON representation
A generic-purpose, atomic, ordered, zero-copy read, zero-cost (in-place) write, Write-Ahead Log implementation for Rust.
- Host: GitHub
- URL: https://github.com/al8n/orderwal
- Owner: al8n
- License: apache-2.0
- Created: 2024-08-30T19:17:40.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-12-28T17:12:22.000Z (over 1 year ago)
- Last Synced: 2025-04-25T22:38:46.368Z (about 1 year ago)
- Topics: append-only, append-only-log, rust, wal, write-ahead-log
- Language: Rust
- Homepage:
- Size: 634 KB
- Stars: 21
- Watchers: 1
- Forks: 2
- Open Issues: 10
-
Metadata Files:
- Readme: README-zh_CN.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
Awesome Lists containing this project
README
OrderWAL
A generic-purpose, atomic, ordered, zero-copy read, zero-cost (in-place) write, Write-Ahead Log implementation for Rust.
[
][Github-url]
[
][CI-url]
[
][codecov-url]
[
][doc-url]
[
][crates-url]
[
][crates-url]

English | [简体中文][zh-cn-url]
## Introduction
`orderwal` is generic-purpose, atomic, ordered, zero-copy read, zero-cost (in-place) write, concurrent-safe, pre-allocate style (memory map) write-ahead-log for developing databases.
`orderwal` also supports generic structured key and value types, which is not limited to just bytes like other implementations.
## Installation
- Default (with on-disk support)
```toml
[dependencies]
orderwal = "0.5"
```
- `std` only (without on-disk support)
```toml
[dependencies]
orderwal = { version = "0.5", default-features = false, features = ["std"] }
```
- `no-std` (`alloc` required)
```toml
[dependencies]
orderwal = { version = "0.5", default-features = false, features = ["alloc"] }
```
## Example
See [examples](./examples/) for more information.
## Related projects
- [`aol`](https://github.com/al8n/aol): Yet another generic purpose, append-only write-ahead log implementation based on `std::fs::File`.
- [`skl`](https://github.com/al8n/skl): A lock-free, ARNEA based skiplist implementation, which supports in-memory and on-disk, suitable for frozen durable data file or memtable for LSM database.
- [`valog`](https://github.com/al8n/valog): A lock-free, generic, lightweight value log for WiscKey or Bitcask architecture databases.
- [`dtlog`](https://github.com/al8n/dtlog): A log for tracking discard stats of multi-files databases.
#### License
`orderwal` is under the terms of both the MIT license and the
Apache License (Version 2.0).
See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT) for details.
Copyright (c) 2024 Al Liu.
[Github-url]: https://github.com/al8n/orderwal/
[CI-url]: https://github.com/al8n/orderwal/actions/workflows/ci.yml
[doc-url]: https://docs.rs/orderwal
[crates-url]: https://crates.io/crates/orderwal
[codecov-url]: https://app.codecov.io/gh/al8n/orderwal/
[zh-cn-url]: https://github.com/al8n/orderwal/tree/main/README-zh_CN.md