README.md 3.24 KB
Newer Older
braco's avatar
braco committed
1 2 3
# Introduction

Ion is a modern system shell that features a simple, yet powerful, syntax. It is written entirely
Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
4 5 6
in Rust, which greatly increases the overall quality and security of the shell. It also offers a
level of performance that exceeds that of Dash, when taking advantage of Ion's features. While it
is developed alongside, and primarily for, RedoxOS, it is a fully capable on other \*nix platforms.
braco's avatar
braco committed
7

8
# Ion Shell
9 10

[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
BafDyce's avatar
BafDyce committed
11
[![crates.io](https://meritbadge.herokuapp.com/ion-shell)](https://crates.io/crates/ion-shell)
12
[![Documentation](https://img.shields.io/badge/documentation-blue)](https://doc.redox-os.org/ion-manual/html)
Jeremy Soller's avatar
Jeremy Soller committed
13

14
> Ion is still a WIP, and both its syntax and rules are subject to change over time. It is
Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
15
> still quite a ways from becoming stabilized, but we are getting very close. Changes to the
16 17
> syntax at this time are likely to be minimal.

Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
18 19 20 21 22 23 24
# Ion Specification

Ion has a RFC process for language proposals. Ion's formal specification is located within the
[rfcs](https://gitlab.redox-os.org/redox-os/ion/tree/rfcs) branch. The RFC process is still in
the early stages of development, so much of the current and future implementation ideas have
yet to be written into the specification.

25
# Ion Manual
26

27 28 29 30

[The Ion manual online](https://doc.redox-os.org/ion-manual/html) 
is generated automatically on each commit via [mdBook](https://github.com/azerupi/mdBook) and hosted on Redox OS's website.

31
**Building the manual for local reference**
32 33 34 35 36 37 38 39

Sources for the manual are located in the `manual` directory.

You can build the manual using
```sh
make manual
mdbook build -d ../public manual
```
Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
40

41 42 43
# Ion library example
See the [examples folder](https://gitlab.redox-os.org/redox-os/ion/tree/master/examples) and the [Parallelion project](https://gitlab.redox-os.org/AdminXVII/parallelion)

44 45 46 47
# Packages

## Pop!\_OS / Ubuntu

AdminXVII's avatar
AdminXVII committed
48
The following PPA supports the 18.04 (bionic) and 19.04 (disco) releases. Bionic builds were made using the Pop\_OS PPA's rustc 1.39.0 package.
49 50 51 52 53

```
sudo add-apt-repository ppa:mmstick76/ion-shell
```

stratact's avatar
stratact committed
54
# Developer set up
55

56
Those who are developing software with Rust should install the [Rustup toolchain manager](https://rustup.rs/).
AdminXVII's avatar
AdminXVII committed
57
After installing rustup, run `rustup override set 1.39.0` to set your Rust toolchain to the version that Ion is
58
targeting at the moment. To build for Redox OS, `rustup override set nightly` is required to build the Redox
59
dependencies.
60

stratact's avatar
stratact committed
61 62
# Build dependencies

AdminXVII's avatar
AdminXVII committed
63
Please ensure that both cargo and rustc 1.39.0 or higher is installed for your system.
stratact's avatar
stratact committed
64
Release tarballs have not been made yet due to Ion being incomplete in a few remaining areas.
65

stratact's avatar
stratact committed
66
# Compile instructions for distribution
67 68

```sh
Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
69
git clone https://gitlab.redox-os.org/redox-os/ion/
70
cd ion
stratact's avatar
stratact committed
71
RUSTUP=0 make # By default RUSTUP equals 1, which is for developmental purposes
72
sudo make install prefix=/usr
73
sudo make update-shells prefix=/usr
74 75
```

76 77
> To compile in DEBUG mode, pass `DEBUG=1` as an argument to `make`

78 79
# Vim/NeoVim Syntax Highlighting Plugin

Michael Aaron Murphy's avatar
Michael Aaron Murphy committed
80
We do have an [officially-supported syntax highlighting plugin](https://gitlab.redox-os.org/redox-os/ion-vim) for all the
81 82 83 84 85 86
vim/nvim users out there.

```vimscript
Plugin 'vmchale/ion-vim'
```

BafDyce's avatar
BafDyce committed
87
![Screenshot of Syntax Highlighting](https://i.imgur.com/JzZp7WT.png)