#klvm #byte #programs #processing #structures #utilities #values

klvm-utils

Utility functions for processing klvm programs and structures

22 releases (breaking)

new 0.21.1 Mar 7, 2025
0.20.0 Feb 17, 2025
0.10.0 Jul 11, 2024
0.5.1 Feb 21, 2024
0.2.7 Jul 24, 2023

#26 in Magic Beans

Download history 8/week @ 2024-11-15 11/week @ 2024-11-22 12/week @ 2024-11-29 73/week @ 2024-12-06 12/week @ 2024-12-13 1/week @ 2024-12-20 1/week @ 2025-01-24 575/week @ 2025-01-31 468/week @ 2025-02-07 151/week @ 2025-02-14 162/week @ 2025-02-21 148/week @ 2025-02-28

1,198 downloads per month
Used in 18 crates (13 directly)

Apache-2.0

85KB
2K SLoC

KLVM Utils

This provides various commonly needed utilities for working with KLVM values.

Currying Example

use klvm_utils::CurriedProgram;
use klvm_traits::{ToKlvm, klvm_curried_args};
use klvmr::{Allocator, serde::node_to_bytes};

let a = &mut Allocator::new();

let program = a.one();

let ptr = CurriedProgram {
    program,
    args: klvm_curried_args!(42, 75),
}
.to_klvm(a)
.unwrap();

let hex = hex::encode(node_to_bytes(a, ptr).unwrap());

// (a (q . 1) (c (q . 42) (c (q . 75) 1)))
assert_eq!(hex, "ff02ffff0101ffff04ffff012affff04ffff014bff01808080");

Dependencies

~13MB
~311K SLoC