#array #heap-allocated #heap #size #fixed-size #compile-time #unknown


Adds the Caja struct which is basically Box<[T;n]>, but n can be not known at compile-time

4 releases

0.2.1 Feb 9, 2024
0.2.0 Feb 9, 2024
0.1.1 Jan 30, 2024
0.1.0 Jan 30, 2024

#248 in Memory management

30 downloads per month


131 lines


Caja is a simple rust library that allows for the creation of fixed sized arrays of a size unknown at compile time. It is basically Box<[T;n]> but allowing the n to be non constant value.


extern crate caja;

use caja::Caja;

pub fn main() {

    // Creates a heap allocated array of size 108 with the default value 0xEE

    let caj = Caja::<u16>::new(108, 0xEE).unwrap();

    // it is also possible to use new_zeroed and new_uninitialized

    // Caja implements Display and Debug, as long as T does so too.

    println!("{}", caj);


    // Caja implements Index and IndexMut, so it is possible to access it as any normal array.

    println!("{}", caj[77]);

    //  And you can also access the underlying pointer inside of Caja

    println!("{:p}", caj.as_mut_ptr());


No runtime deps