#version #different #serialization #migrating #data

hifumi

A serialization library for migrating data between different versions

2 releases

0.1.1 Dec 8, 2024
0.1.0 Dec 8, 2024

#46 in #different

Download history 186/week @ 2024-12-04 63/week @ 2024-12-11 1/week @ 2024-12-18

250 downloads per month

Apache-2.0

6KB
96 lines

hifumi

Crates.io License Crates.io Version GitHub Actions Workflow Status

Introduction

A serialization library for migrating data between different versions.

The name hifumi comes from the character Hifumi in the game Blue Archive.

Still in development, the API may change in the future.

Quick Start

use hifumi::version;

#[version("0.2")]
#[derive(Debug, Clone, PartialEq)]
#[migration("0.1" => "0.2" {
    + (c: i32, d: i32) => e: String { (c + d).to_string() },
    - f: f32,
})]
struct Test {
    a: i32,
    b: i32,
    c: i32,
    d: i32,
    e: String,
}

TODO

  • Support rs_ts.
  • Support yuuka.
  • Version field can use crate version automatically.
  • Generate migration code automatically from the git history.

Dependencies

~1.4–2.4MB
~48K SLoC