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

klvm-utils

Utility functions for processing klvm programs and structures

20 releases (breaking)

new 0.20.0 Feb 17, 2025
0.18.0 Feb 6, 2025
0.10.0 Jul 11, 2024
0.5.1 Feb 21, 2024
0.2.7 Jul 24, 2023

#945 in Magic Beans

Download history 3/week @ 2024-10-23 5/week @ 2024-10-30 7/week @ 2024-11-06 3/week @ 2024-11-13 14/week @ 2024-11-20 12/week @ 2024-11-27 34/week @ 2024-12-04 52/week @ 2024-12-11 2/week @ 2024-12-18 191/week @ 2025-01-29 846/week @ 2025-02-05

1,037 downloads per month
Used in 8 crates (7 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
~304K SLoC