Skip to content
This repository was archived by the owner on Jul 10, 2025. It is now read-only.
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions sigs/jvm/rfcs/20200726-java-ndarray-repository.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Java NdArray Repository
| Status | Proposed |
:-------------- |:---------------------------------------------------- |
| **Author(s)** | Karl Lessard (karl.lessard@gmail.com) |
| **Sponsored** | Joana Carrasqueira (joanafilipa@google.com), Rajagopal Ananthanarayanan (ananthr@google.com) |
| **Updated** | 2020-07-29 |

## Objective

Create a new repository under the TensorFlow GitHub organization to host the code of the NdArray Java library used by TensorFlow and
maintained by SIG JVM.

## Motivation

SIG JVM has developed a library called [`NdArray`](https://github.com/tensorflow/java/tree/master/ndarray) to improve the
support of n-dimensional data structures on the JVM (e.g. tensors in TensorFlow).

While this library is intensively used by the TensorFlow Java bindings, it does not have any dependency to the
TensorFlow runtime itself, making it an interesting option for any Java developer interested in fast and efficient I/O accesses
to continuous native memory in a n-dimensional space.

To promote the adoption of this library beyond the scope of TensorFlow users, SIG JVM would like to move it into a distinct
GitHub repository.

## User Benefit

N-dimensional memory access in Java is poorly supported by the JDK and while there are already a few initiatives involving different
parties to standardize such API, it will take time before it gets released to the public. The NdArray Java Library is now a good option for
all kind of Java projects and since it does not depend on the TensorFlow runtime, it is very lightweight and portable.

Also, having a distinct repository for the NdArray Java Library development will simplify the task for its collaborators as they will not need
anymore to checkout and build the whole TensorFlow Java project, a process which tends to be heavy since it also runs a Bazel build
of the TensorFlow core sources that can take many hours.

## Design Proposal

The current request is for the creation of the following repository: `/tensorflow/java-ndarray`

This new repository will only host the code of the NdArray Java Library, which will be moved out of `tensorflow/java`.
Everything else related to TensorFlow Java depends on the TensorFlow runtime and shall remain under their actual
repositories.

The NdArray Java Library will now have its own release cycle and group of collaborators, independently from the TensorFlow Java bindings, while
remaining under the jurisdiction of SIG JVM.