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
150 downloads per month
Used in 7 crates
(via nsi-core)
11KB
117 lines
nsi-sys
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 enum
s have been rustified. Meaning they were mapped to actual Rust enum
s.
Postfixes were stripped on enum
and struct
type names. E.g.:
NSIParam_t
⟶ NSIParam
Prefixes and postfixes were stripped on enum
variants. E.g.:
NSIType_t
::NSITypeInvalid
⟶ NSIType::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