45
0
Fork
You've already forked project-issues
0

Code preservation and Rust-to-C compiler #41

Open
opened 2026年03月13日 09:25:26 +01:00 by songtech-0912 · 2 comments

Project Elara is designed with resilience in mind; all our software today should be able to be compiled/run even after a decade. This means that once we have reached a greater stage of development, we need to start thinking about software preservation.

While it is unlikely that Rust will cease development, a concrete guarantee that we will always be able to compile our Rust code could be a Rust-to-C complier like Eurydice, since C is a language that is bound to stay forever.

In addition, there should be a downloadable mega-archive of all of Project Elara's dependencies, dev tools and git repositories that can be downloaded to a single USB, meaning that it will not need an internet connection to run software, download dependencies or clone our repositories with Git. The full list of developer tools/packages/source code includes, but is not limited to:

  • C/C++ compiler and Rust toolchain
  • Complete installation of Python with all Python dependencies installed, and Jupyterlab/Jupyter notebook available
  • Complete Git installation
  • All of our documentation, including those for our Rust & Python libraries as well as the Handbook (both source files and PDF)
  • A minimal build of the Firefox web browser; this is to enable viewing of the Elara Handbook locally-built
  • A minimal code editor like micro
  • All of our Git repositories cloned locally
  • Detailed instructions on how to run and set up everything

Note: The downloadable mega-archive should have compilers for Mac, Windows, and Linux. The Linux versions should target a specific LTS version of Debian/Ubuntu for reproducible builds.

The mega-archive will be essentially a snapshot of Project Elara in time; no internet connection will be necessary to install anything, and everything can be run directly from a USB. The software to automatically create these archives will be developed in https://codeberg.org/elaraproject/elara-archiver.

Also, ideally, I would prefer to eventually have a complete distribution for Project Elara in the form of a disk image (ISO file) that could be flashed to a hard disk. This distribution would be sort of like Scientific Linux in that it contains all the dependencies/packages preinstalled as well as clones of all our repositories, except optimized so that it can be run on hardware well into the future.

Lastly, this issue is closely related to elaraproject/elara-handbook#55, although that issue is about preserving our documentation while this one is about preserving our code.

Project Elara is designed with resilience in mind; all our software today should be able to be compiled/run even after a decade. This means that once we have reached a greater stage of development, we need to start thinking about software preservation. While it is unlikely that Rust will cease development, a concrete guarantee that we will always be able to compile our Rust code could be a Rust-to-C complier like [Eurydice](https://jonathan.protzenko.fr/2025/10/28/eurydice.html), since C is a language that is bound to stay forever. In addition, there should be a downloadable mega-archive of all of Project Elara's dependencies, dev tools and git repositories that can be downloaded to a single USB, meaning that it will not need an internet connection to run software, download dependencies or clone our repositories with Git. The full list of developer tools/packages/source code includes, but is not limited to: - C/C++ compiler and Rust toolchain - Complete installation of Python with all Python dependencies installed, and Jupyterlab/Jupyter notebook available - Complete Git installation - All of our documentation, including those for our Rust & Python libraries as well as the Handbook (both source files and PDF) - A minimal build of the Firefox web browser; this is to enable viewing of the Elara Handbook locally-built - A minimal code editor like [micro](https://micro-editor.github.io/) - All of our Git repositories cloned locally - Detailed instructions on how to run and set up everything > **Note:** The downloadable mega-archive should have compilers for Mac, Windows, and Linux. The Linux versions should target a specific LTS version of Debian/Ubuntu for reproducible builds. The mega-archive will be essentially a snapshot of Project Elara in time; no internet connection will be necessary to install anything, and everything can be run directly from a USB. The software to automatically create these archives will be developed in https://codeberg.org/elaraproject/elara-archiver. Also, ideally, I would prefer to eventually have a complete distribution for Project Elara in the form of a disk image (ISO file) that could be flashed to a hard disk. This distribution would be sort of like [Scientific Linux](https://scientificlinux.org/) in that it contains all the dependencies/packages preinstalled as well as clones of all our repositories, except optimized so that it can be run on hardware well into the future. Lastly, this issue is closely related to https://codeberg.org/elaraproject/elara-handbook/issues/55, although that issue is about preserving our _documentation_ while this one is about preserving our code.
Author
Owner
Copy link

For now I think it would suffice to simply clone all of our Git repositories on Codeberg onto a hard drive and periodically run git fetch on each of them (which can both be done by a script).

For now I think it would suffice to simply clone all of our Git repositories on Codeberg onto a hard drive and periodically run `git fetch` on each of them (which can both be done by a script).
Author
Owner
Copy link

Also we should include in the print edition of the Handbook a special edition with an embedded USB containing a copy of all Elara repos (generated https://codeberg.org/elaraproject/elara-archiver) initially, but eventually an ISO image that contains all dependencies alongside the Elara git repos for optimal storage. The Handbook itself should contain full instructions on how to load the USB into a computer so that the files can be read (and in the future, how to run the ISO). The Handbook would then need a lot more info (e.g. the USB standard and how to setup a basic, low-cost computer like a raspberry pi to read it) but it could be done.

Also we should include in the print edition of the Handbook a special edition with an embedded USB containing a copy of all Elara repos (generated https://codeberg.org/elaraproject/elara-archiver) initially, but eventually an ISO image that contains all dependencies alongside the Elara git repos for optimal storage. The Handbook itself should contain full instructions on how to load the USB into a computer so that the files can be read (and in the future, how to run the ISO). The Handbook would then need a lot more info (e.g. the USB standard and how to setup a basic, low-cost computer like a raspberry pi to read it) but it could be done.
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
elaraproject/project-issues#41
Reference in a new issue
elaraproject/project-issues
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?