#policy #policies #toml

aranya-policy-ifgen

Tools for generating Rust interfaces to Aranya Policies

5 releases (breaking)

0.5.0 Mar 19, 2025
0.4.0 Mar 12, 2025
0.3.1 Dec 19, 2024
0.2.0 Dec 4, 2024
0.1.0 Oct 16, 2024

#216 in FFI

Download history 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 505/week @ 2025-02-01 313/week @ 2025-02-08 164/week @ 2025-02-15 27/week @ 2025-02-22 531/week @ 2025-03-01 1207/week @ 2025-03-08 1223/week @ 2025-03-15 1235/week @ 2025-03-22

4,197 downloads per month
Used in aranya-daemon

AGPL-3.0-only

460KB
11K 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

~19–31MB
~469K SLoC