#version #different #serialization #migrating #data #hifumi

macro hifumi-macros

A serialization library for migrating data between different versions

2 releases

0.1.1 Dec 8, 2024
0.1.0 Dec 8, 2024

#2254 in Procedural macros

Download history 190/week @ 2024-12-04 66/week @ 2024-12-11 4/week @ 2024-12-18

260 downloads per month
Used in hifumi

Apache-2.0

36KB
881 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.8–2.6MB
~55K SLoC