mink-idl-compiler

The Mink IDL Compiler

Mink Interface Description Language (IDL) describes programming interfaces that can be used to communicate across security domain boundaries. It defines its own type system, independent of any particular target language. See Mink IPC for more detail.

The Mink IDL compiler generates target language header files which include bindings for Mink interfaces and their associates structures. The generated header files introduce proxy functions that facilitate method invocation using Mink’s Object_invoke IPC mechanism. This abstraction shields both client-side proxy, called stubs, and implementation-side proxy, called skeletons, from the details of direct invocation.

It compiles .idl files into language bindings for:

Branches

main: Primary development branch. Contributors should develop submissions based on this branch, and submit pull requests to this branch.

Requirements

Follow these instructions to install Rust.

If you’ve installed rustup in the past, you can update your installation by running rustup update.

Usage

Run the compiler (file output):

cargo run -- tests/idl/ITest.idl -o /tmp/ITest.h

The target/output language is C, by default.

Generate Rust output (directory output):

mkdir -p /tmp/rust_out
cargo run -- tests/idl/ITest.idl --rust -o /tmp/rust_out

Run cargo run -- --help to see all available options.

Notable Features

Restrictions

Development

For details on how to contribute, see CONTRIBUTING.md.

Getting in Contact

How to contact maintainers. E.g. GitHub Issues, GitHub Discussions could be indicated for many cases. However a mail list or list of Maintainer e-mails could be shared for other types of discussions. E.g.

License

mink-idl-compiler is licensed under the BSD-3-clause License. See LICENSE.txt for the full license text.