13 releases (breaking)
new 0.10.0-alpha.0 | Apr 15, 2024 |
---|---|
0.9.0-alpha.0 | Mar 30, 2024 |
0.8.0-alpha.0 | Mar 22, 2024 |
#270 in Unix APIs
558 downloads per month
3MB
68K
SLoC
mlx-sys
DO NOT USE. This is an experimental crate for testing right now, and it is not intended to be used directly. A separate safe wrapper crate will be created in the future.
Naming
- Numeric types that are not in the rust standard library will use whatever the MLX library uses, eg.
float16_t
- Trivial C++ types, if not following the rust naming convention, will be renamed to follow the rust naming conventions. This includes enums and structs, eg.
DeviceType::Cpu
. - Opaque C++ types will use whatever the MLX library uses, eg.
array
.
Exception and Result
The overall strategy for catching exceptions and turning them into Rust errors is
- Ignore memory allocation exceptions. This is consistent with the behavior of
Vec
in rust. load_library
orget_kernel
, this would include all ops and usually indicates a problem with the library, so we should probably just let it panic