chara_card 0.3.0

A library to deal with character card formats and `.charx` in Rust.
Documentation

chara_cardVersion License

chara_card provides thick (not yet...) abstraction layer on character card formats and .charx in Rust.

Its primary goal is to help programs to run the same format everywhere with same behaviour.

Features

(De)serialization/Validation:

Evaluation:

  • Content evaluation
    • Decorator evaluator
    • CBS evaluator
  • Non-standard extension compatibility
    • RisuAI

Packaging:

  • Extracting from .charx
  • Packaging to .charx

Usage

Add chara_card to your dependencies in Cargo.toml.

Parse card.json:

use chara_card::raw::CharacterCard;

fn parse_card_json(card_json: &str) {
    // Parse character card from JSON string
    let parsed: CharacterCard = serde_json::from_str(card_json).unwrap();

    println!("{:#?}", parsed);
}

Extract from .charx:

[!WARNING] Currently, charx module is unstable and API may be changed in future.

use chara_card::charx::CharX;

fn parse_charx(bytes: &[u8]) {
    // Extract from archived bytes (.charx)
    let reader = Cursor::new(bytes);
    let _charx = CharX::from(reader).unwrap();
}

License

Licensed under Apache License, Version 2.0.