#aranya #policy #generate #policies #generator #interface #typed

aranya-policy-ifgen

Tools for generating Rust interfaces to Aranya Policies

3 releases (breaking)

0.3.1 Dec 19, 2024
0.3.0 Dec 19, 2024
0.2.0 Dec 4, 2024
0.1.0 Oct 16, 2024

#414 in Asynchronous

Download history 3/week @ 2024-10-26 20/week @ 2024-11-02 15/week @ 2024-11-09 73/week @ 2024-11-16 79/week @ 2024-11-23 146/week @ 2024-11-30 203/week @ 2024-12-07 281/week @ 2024-12-14 32/week @ 2024-12-21 128/week @ 2024-12-28 591/week @ 2025-01-04 243/week @ 2025-01-11 90/week @ 2025-01-18 362/week @ 2025-01-25 506/week @ 2025-02-01 283/week @ 2025-02-08

1,287 downloads per month
Used in 2 crates (via aranya-daemon)

AGPL-3.0-only

440KB
10K SLoC

Policy Interface Generation

Generate typed Rust interface from policy code.

Quickstart

# Cargo.toml

[dependencies]
aranya-policy-ifgen = { ... }

[build-dependencies]
aranya-policy-ifgen-build = { ... }
// build.rs

fn main() {
    println!("cargo:rerun-if-changed=src/policy.md");
    aranya_policy_ifgen_build::generate("src/policy.md", "src/policy.rs").unwrap();
}
// src/lib.rs

#[rustfmt::skip]
mod policy;

impl aranya_policy_ifgen::Actor for MyActor { ... }

fn do_the_thing(actor: &MyActor) -> Result<(), aranya_runtime::ClientError> {
    use policy::ActorExt;
    actor.some_action(42, "my string")
}

Dependencies

~18–28MB
~441K SLoC