mlx-sys 0.4.0-alpha.0

Rust bindings for mlx
mlx-sys-0.4.0-alpha.0 has been yanked.

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

  1. Ignore memory allocation exceptions. This is consistent with the behavior of Vec in rust.
  2. load_library or get_kernel, this would include all ops and usually indicates a problem with the library, so we should probably just let it panic