This chapter describes how to extend Numba to make it recognize and support additional operations, functions or types. Numba provides two categories of APIs to this end:
The high-level APIs provide abstracted entry points which are sufficient for simple uses. They require little knowledge of Numba’s internal compilation chain.
The low-level APIs reflect Numba’s internal compilation chain and allow flexible interaction with its various layers, but require more effort and experience with Numba internals.
It may be helpful for readers of this chapter to also read some of the documents in the developer manual, especially the architecture document.
- High-level extension API
- Implementing functions
- Implementing methods
- Implementing classmethods
- Implementing attributes
- Importing Cython Functions
- Implementing intrinsics
- Implementing mutable structures
- Determining if a function is already wrapped by a
- Low-level extension API
- Example: An Interval Type
- Extending the typing layer
- Extending the lowering layer
- Using it
- A guide to using
- Registering Extensions with Entry Points