Skip to content
Snippets Groups Projects
side_projects.md 3.05 KiB
Newer Older
Ticki's avatar
Ticki committed
Side projects
=============

Skyler Berg's avatar
Skyler Berg committed
Redox is a complete Rust operating system.
In addition to the kernel, we are developing several side projects, including:
Ticki's avatar
Ticki committed

Emanuele Antonio Faraone's avatar
Emanuele Antonio Faraone committed
- [TFS]: A file system inspired by ZFS.
k0pernicus's avatar
k0pernicus committed
- [Ion]: The Redox shell.
- [Orbital]: The display server of Redox.
- [OrbTK]: A widget toolkit.
- [pkgutils]: Redox's package management library and its command-line frontend.
k0pernicus's avatar
k0pernicus committed
- [Sodium]: A Vi-like editor.
- [ralloc]: A memory allocator.
- [libextra]: Supplement for libstd, used throughout the Redox code base.
- [games-for-redox]: A collection of mini-games for Redox (alike BSD-games).
- and a few other exciting projects you can explore [here].
Ticki's avatar
Ticki committed

Skyler Berg's avatar
Skyler Berg committed
We also have three utility distributions, which are collections of small, useful command-line programs:
k0pernicus's avatar
k0pernicus committed
- [Coreutils]: A minimal set of utilities essential for a usable system.
- [Extrautils]: Extra utilities such as reminders, calendars, spellcheck, and so on.
- [Binutils]: Utilities for working with binary files.
Ticki's avatar
Ticki committed

Dan Robertson's avatar
Dan Robertson committed
We also actively contribute to third party projects that are heavily used in Redox.

 - [uutils/coreutils]: Cross-platform Rust rewrite of the GNU coreutils.
 - [m-labs/smoltcp]: The network stack used by Redox.

What tools are fitting for the Redox distribution?
Ticki's avatar
Ticki committed
-------------------------------------------------

Some of these tools will in the future be moved out of the default distribution, into seperate optional packages. Examples of these are Orbital, OrbTK, Sodium, and so on.
Ticki's avatar
Ticki committed

The listed tools fall into three categories:

1. **Critical**, which are needed for a full functioning and usable system.
2. **Ecosystem-friendly**, which are there for establishing consistency within the ecosystem.
3. **Fun**, which are "nice" to have and are inherently simple.
Ticki's avatar
Ticki committed

The first category should be obvious: an OS without certain core tools is a useless OS. The second category contains the tools which are likely to be non-default in the future, but nonetheless are in the official distribution right now, for the charm. The third category is there for convenience: namely for making sure that the Redox infrastructure is consistent and integrated (e.g., pkgutils, OrbTK, and libextra).
Ticki's avatar
Ticki committed

It is important to note we seek to avoid non-Rust tools, for safety and consistency (see [Why Rust]).
[TFS]: https://gitlab.redox-os.org/redox-os/tfs
[Ion]: https://gitlab.redox-os.org/redox-os/ion
[Orbital]: https://gitlab.redox-os.org/redox-os/orbital
[OrbTK]: https://gitlab.redox-os.org/redox-os/orbtk
[pkgutils]: https://gitlab.redox-os.org/redox-os/pkgutils
[Sodium]: https://gitlab.redox-os.org/redox-os/sodium
[ralloc]: https://gitlab.redox-os.org/redox-os/ralloc
[libextra]: https://gitlab.redox-os.org/redox-os/libextra
[games-for-redox]: https://gitlab.redox-os.org/redox-os/games
[here]: https://gitlab.redox-os.org/redox-os

[Coreutils]: https://gitlab.redox-os.org/redox-os/coreutils
[Extrautils]: https://gitlab.redox-os.org/redox-os/extrautils
[Binutils]: https://gitlab.redox-os.org/redox-os/binutils

[uutils/coreutils]: https://github.com/uutils/coreutils
[m-labs/smoltcp]: https://github.com/m-labs/smoltcp
Dan Robertson's avatar
Dan Robertson committed

[Why Rust]: ./introduction/why_rust.html