kure2-lua-sys

Crates.iokure2-lua-sys
lib.rskure2-lua-sys
version0.1.2
created_at2025-08-15 07:54:10.164566+00
updated_at2025-08-23 22:57:50.489903+00
descriptionFFI bindings for Lua, intended to be used with kure2-sys
homepage
repositoryhttps://github.com/Benjamin-Davies/kure2-rs
max_upload_size
id1796378
size809,890
Ben Davies (Benjamin-Davies)

documentation

README

kure2-rs

This repo houses a Rust wrapper for Kure, a C library which provides manipulation of relations and operations of relation algebra using a fast implementation using binary decision diagrams. It also contains kure2-cli, a CLI for using Kure's domain-specific language.

Historically, the Kure library originates from the RelView tool. Today, Kure is a standalone library that does not depend on any part of the RelView tool. kure2-cli is intended to replicate most of the features of RelView, allowing them to be easily used on modern macOS and Linux systems.

Usage

To use kure2-rs, you must have the Rust toolchain installed.

Command Line Interface

To download kure2-cli, run:

cargo install kure2-cli

You can then launch the REPL by running kure in your terminal.

The REPL also support various commands (starting with a .) to help with loading and saving programs and relations.

Library

Using the kure2 crate should be straightforward. You can create a relation using the Relation struct. You can also execute DSL code using an instance of the lang::State struct.

Licensing

The crates in this repository are licensed under the MIT License, except for those that directly or indirectly dependent on Kure, which are licensed under GNU GPLv3. The vendored C libraries (Cudd, Kure and Lua), and any patches I have made to them, are licensed under the same license as the original libraries (i.e. BSD 3-Clause, GPLv3 and MIT, respectively).

Commit count: 32

cargo fmt