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.