It seems quite widely adopted:
Although I have not checked how compatible they are.
JAX in particular requires an extra length argument to statically define the length of the output array to make JIT possible and dask uses (nan,) shape to represent a data-dependent output shapes.