#bitflags #renderer #nsi

sys nsi-sys

Auto-generated bindings for Illumination Research’s Nodal Scene Interface – ɴꜱɪ

17 releases

0.7.1 May 1, 2023
0.2.2 Apr 6, 2023
0.2.1 Oct 19, 2022
0.2.0 Feb 18, 2022
0.1.0 Mar 11, 2020

#124 in Visualization

Download history 22/week @ 2023-02-06 76/week @ 2023-02-13 78/week @ 2023-02-20 6/week @ 2023-02-27 20/week @ 2023-03-06 12/week @ 2023-03-13 6/week @ 2023-03-20 15/week @ 2023-03-27 74/week @ 2023-04-03 36/week @ 2023-04-10 41/week @ 2023-04-17 28/week @ 2023-04-24 51/week @ 2023-05-01 53/week @ 2023-05-08 12/week @ 2023-05-15 12/week @ 2023-05-22

150 downloads per month
Used in 7 crates (via nsi-core)

Apache-2.0…

11KB
117 lines

nsi-sys

Build Documentation Crate Chat Maintenance

Auto-generated Rust bindings for Illumination Research’s Nodal Scene Interface – ɴsɪ.

You should not need to use this crate directly except for two reasons. You are likely either:

  • writing a renderer that exposes an ɴsɪ C-API.

  • a masochist who wants to use the C-API directly from Rust.

High Level Bindings

There are high level Rust bindings for this API in the ɴsɪ crate.

Differences From The C API

All enums have been rustified. Meaning they were mapped to actual Rust enums.

Postfixes were stripped on enum and struct type names. E.g.:

NSIParam_tNSIParam

Prefixes and postfixes were stripped on enum variants. E.g.:

NSIType_t::NSITypeInvalidNSIType::Invalid

Rationale: make code using the bindings a bit less convoluted resp. easier to read.

Finally, NSIParamFlags is a bitflags struct that wraps the NSIParam* flags from the C-API for ergnomics.

Compile- vs. Runtime

The crate builds as-is, with default features.

However, at runtime this crate requires a library/renderer that implements the ɴsɪ C-API to link against. Currently the only renderer that does is 3Delight.

Features

  • omit_functions – Omit generating bindings for the API's functions. This is for the casewhere you want to expose your own C-API hooks from your renderer.

License

Apache-2.0 OR BSD-3-Clause OR MIT OR Zlib at your option.

Dependencies

~0.1–1.6MB
~35K SLoC