XND is an extensible framework of C libraries and Python modules for
handling typed memory blocks. XND recreates the foundations of NumPy as a
number of smaller libraries, combining the lessons learned in the past twenty
years of array computing in Python with the needs of newer applications.
XND's type system is more general than NumPy's and allows unpacking
arbitrarily nested Python type hierarchies directly to memory.
XND's computational kernels are multimethods and can be generated
and inserted into modular lookup tables at runtime. This opens the
possibility for a large variety of applications written in different
languages to use XND as a container backend.
Ongoing work connects
XND to Numba, Lapack/MKL and the CUDA kernel libraries. There is
interest in integrating XND with a variety of libraries like Dask,
xarray, Numba, Chainer, PyTorch, Tensorflow, PyMC4, TVM/NNVM,
Plasma Store, Apache Arrow, and Tensor Comprehensions.