#serialization #snapshot #version #deserialize #firecracker #state #projects

dbs-snapshot

A version tolerant state serialization and deserialization library

2 stable releases

1.5.1 Dec 19, 2023
1.5.0 Oct 18, 2023

#590 in Encoding

Download history 184/week @ 2023-12-18 282/week @ 2023-12-25 167/week @ 2024-01-01 49/week @ 2024-01-08 164/week @ 2024-01-15 172/week @ 2024-01-22 108/week @ 2024-01-29 165/week @ 2024-02-05 60/week @ 2024-02-12 174/week @ 2024-02-19 151/week @ 2024-02-26 142/week @ 2024-03-04 205/week @ 2024-03-11 83/week @ 2024-03-18 131/week @ 2024-03-25 103/week @ 2024-04-01

533 downloads per month
Used in fuse-backend-rs

Apache-2.0

52KB
1K SLoC

Python 619 SLoC // 0.1% comments Rust 446 SLoC // 0.1% comments

dbs-snapshot

dbs-snapshot is a fork of Firecracker microvmm's snapshot crate. It was done so because the Firecracker maintainers have no plan to publish the crate on crates.io.

dbs-snapshot provides a version tolerant serialization and deserialization facilities and implements a persistent storage format for saving rust struct states. It can form a basis of many useful functionalities such as VM snapshot for rust-based VMMs, as well as user space program live upgrade for other projects like Nydus.

Disclaimer

Please note that the crate is released from v1.5.0 because that is the initial Firecracker release version the crate was taken from.

We will use sematic versioning. The API backward-compatibilites will always be reserved across patch version updates. The backward-compatibilities across minor version updates will be preserved in a best effort manner. Whenever API backward-compatibility is broken on purpose, we will bump the major version.

Dependencies

~2.5MB
~52K SLoC