API bindings allow for programmatic use of IREE's compiler and runtime components. The core IREE project is written in C[^1], allowing for API bindings to be written in a variety of other languages.
!!! question - “Something missing?”
Want to use another language? Looking for something specific out of one of those already listed? We welcome discussions on our [communication channels](../../index.md#communication-channels) and contributions on [our GitHub page](https://github.com/iree-org/iree)!
Members of the core project team and other partner groups maintain these official bindings:
| Language | Compiler API? | Runtime API? | Published packages? |
|---|---|---|---|
| C/C++ | :white_check_mark: Supported | :white_check_mark: Supported | :x: Unsupported |
| Python | :white_check_mark: Supported | :white_check_mark: Supported | :white_check_mark: Supported |
See the C API reference page.
See the Python reference page.
Members of our developer community have authored bindings using other languages:
| Language | Compiler API? | Runtime API? | Published packages? |
|---|---|---|---|
| JavaScript | :grey_question: Experimental | :grey_question: Experimental | :x: Unsupported |
| Java | :x: Unsupported | :grey_question: Experimental | :x: Unsupported |
| Julia | :grey_question: Experimental | :grey_question: Experimental | :x: Unsupported |
| Rust | :x: Unsupported | :grey_question: Experimental | :grey_question: Experimental |
experimental/web/ directory.runtime/bindings/tflite/java directory.[^1]: with some C++ tools and utilities