Fast N-dimensional array implementation for Project Elara (Original Edition)
Find a file
2025-12-23 20:13:07 -05:00
examples Officially added RK4 solver to elara-array 2023-10-14 12:23:10 -04:00
src Minor procedural changes 2023-12-25 18:11:47 -05:00
.gitignore Update gitignore 2023-07-21 15:19:01 +08:00
Cargo.toml Added blas and made impl_bin_ops macro 2023-07-21 11:25:21 +08:00
LICENSE Confirm public domain license 2025-09-26 01:57:06 -04:00
README.md Merge branch 'main' of https://codeberg.org/elaraproject/elara-array 2025-12-23 20:13:07 -05:00

Elara Array (original edition)

This crate provides a minimalist, fast, n-dimensional array for Project Elara with minimal dependencies. Note: this crate was once part of elara-math, but has been extracted into a standalone crate for separate development.

Basic usage

use elara_array::prelude::*;

fn main() {
	let a = arr![[1.0, 2.0], [3.0, 4.0]];
	println!("{:?}", a);
}

Disclaimer

This repository hosts the original edition of the elara-array library. Please note that with our recent move to prioritizing MIT-licensed community edition libraries as our recommended avenue for open-source contributors (see elara-array-community, elara-gfx-community, and elara-math-community), contributors are strongly encouraged to send contributions to the community edition repositories. All original edition libraries will still be developed, but at a much, much slower pace. If you are a contributor, please only contribute to the original edition libraries if:

  1. You are okay dedicating your work to the public domain and thus making it un-copyrighted
  2. You accept that your work is likely not going to make it to the most actively-developed parts of Project Elara

We are aware that these are major dealbreakers for a plurality of developers, which is why the community editions exist in the first place. By being MIT-licensed and encouraged for contributors, there isn't as much of a hurdle/sacrifice involved in contributing. That being said, Project Elara's original edition libraries are still essential - they form the public domain core of the project, which we do believe tremendously in the value in. So if you are sure you want to dedicate your work to the public domain, go ahead and contribute here. Otherwise, send your contributions to the community edition of this library!

Design goals

elara-array is designed to be a minimalist library focused on a high-performance implementation of N-dimensional arrays on the CPU. GPU-accelerated arrays (tensors) are not within the scope of elara-array, but since the array implementation is very transparent, you are welcome to write your own code to transfer/copy the data from elara-array's arrays to the GPU. In addition, elara-math, which is built on elara-array, is working on having this functionality built-in.