{"id":13437232,"url":"https://github.com/redox-os/ion","last_synced_at":"2025-05-12T11:16:29.510Z","repository":{"id":1893409,"uuid":"43815123","full_name":"redox-os/ion","owner":"redox-os","description":"Mirror of https://gitlab.redox-os.org/redox-os/ion","archived":false,"fork":false,"pushed_at":"2025-04-19T20:17:31.000Z","size":4970,"stargazers_count":1508,"open_issues_count":60,"forks_count":143,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-05-11T11:08:12.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/redox-os.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-10-07T12:45:04.000Z","updated_at":"2025-05-10T16:09:09.000Z","dependencies_parsed_at":"2024-02-25T17:30:18.494Z","dependency_job_id":"80ed7fa2-0f92-4c78-b401-fcf76fde0310","html_url":"https://github.com/redox-os/ion","commit_stats":{"total_commits":1723,"total_committers":143,"mean_commits":"12.048951048951048","dds":0.7376668601276843,"last_synced_commit":"0eb3971b0c7e46a0c02a6c76bca0787b8b25ff21"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/redox-os","download_url":"https://codeload.github.com/redox-os/ion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253554082,"owners_count":21926612,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T03:00:55.236Z","updated_at":"2025-05-11T11:08:22.757Z","avatar_url":"https://github.com/redox-os.png","language":"Rust","funding_links":[],"categories":["Applications","Rust","应用程序 Applications","应用","应用 Applications","Shells","others","Packages","\u003ca name=\"shells\"\u003e\u003c/a\u003eShells"],"sub_categories":["System tools","系统工具 System tools","系统工具","Shells"],"readme":"# Introduction\n\nIon is a modern system shell that features a simple, yet powerful, syntax. It is written entirely\nin Rust, which greatly increases the overall quality and security of the shell. It also offers a\nlevel of performance that exceeds that of Dash, when taking advantage of Ion's features. While it\nis developed alongside, and primarily for, RedoxOS, it is a fully capable on other \\*nix platforms.\n\n# Ion Shell\n\n[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)\n[![crates.io](https://meritbadge.herokuapp.com/ion-shell)](https://crates.io/crates/ion-shell)\n[![Documentation](https://img.shields.io/badge/documentation-blue)](https://doc.redox-os.org/ion-manual)\n\n\u003e Ion is still a WIP, and both its syntax and rules are subject to change over time. It is\n\u003e still quite a ways from becoming stabilized, but we are getting very close. Changes to the\n\u003e syntax at this time are likely to be minimal.\n\n# Ion Specification\n\nIon has a RFC process for language proposals. Ion's formal specification is located within the\n[rfcs](https://gitlab.redox-os.org/redox-os/ion/tree/rfcs) branch. The RFC process is still in\nthe early stages of development, so much of the current and future implementation ideas have\nyet to be written into the specification.\n\n# Ion Manual\n\n[The Ion manual online](https://doc.redox-os.org/ion-manual) \nis generated automatically on each commit via [mdBook](https://github.com/azerupi/mdBook) and hosted on Redox OS's website.\n\n**Building the manual for local reference**\n\nSources for the manual are located in the `manual` directory.\n\n1. Build the documentation file for the builtins \n\n```sh\nmake manual\n```\n\n2. Then build the rest of the Ion manual via mdbook\n\n```sh\nmdbook build manual\n```\n\nOr you can build and open it in the your default browser via \n\n```sh\nmdbook serve manual --open\n```\n\nOr you can build and host the manual on your localhost via\n\n```sh\nmdbook serve manual \n```\n\n# Ion library example\n\nSee 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)\n\n# Packages\n\n## Pop!\\_OS / Ubuntu\n\nThe 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.\n\n```\nsudo add-apt-repository ppa:mmstick76/ion-shell\n```\n\n# Developer set up\n\nThose who are developing software with Rust should install the [Rustup toolchain manager](https://rustup.rs/).\nAfter installing rustup, run `rustup override set 1.56.0` to set your Rust toolchain to the version that Ion is\ntargeting at the moment. To build for Redox OS, `rustup override set nightly` is required to build the Redox\ndependencies.\n\n# Build dependencies\n\nPlease ensure that both cargo and rustc 1.56.0 or higher is installed for your system.\nRelease tarballs have not been made yet due to Ion being incomplete in a few remaining areas.\n\n# Installation \n\n## Installation of Ion shell for one user \n\n```sh\ngit clone https://gitlab.redox-os.org/redox-os/ion/\ncd ion\ncargo install --path=. --force \n```\n\nThis way the ion executable will be installed into the folder \"~/.cargo/bin\"\n\nAs an alternative you can do it like this\n\n```sh\ngit clone https://gitlab.redox-os.org/redox-os/ion/\ncd ion\ncargo build --release \n# Install to path which is included in the $PATH enviromnent variable\nDESTDIR=~/.local/bin bash/install.sh\n```\n\n## Installation of Ion shell system wide, for all users\n\n```sh\ngit clone https://gitlab.redox-os.org/redox-os/ion/\ncd ion\ncargo build --release \nsudo DESTDIR=/usr/local/bin bash/install.sh\n# Optional: Do this if Ion shell shoulb be login shell on your system\nsudo make update-shells prefix=/usr\n```\n\n# Ion plugins\n\nThere are plugins for ion. These plugins are additional aliases and function definitions written in \nIon for Ion. They can be found under this [repository](https://gitlab.redox-os.org/redox-os/ion-plugins).\n\n# Vim/NeoVim Syntax Highlighting Plugin\n\nFor vim/nvim users there is an [officially-supported syntax highlighting plugin](https://gitlab.redox-os.org/redox-os/ion-vim).\n\n```vimscript\nPlugin 'vmchale/ion-vim'\n```\n\n![Vim Syntax Highlighting](.gitlab/vim_syntax.png)\n\n# Emacs Syntax Highlighting Plugin\n\nFor emacs users there is a [kindly-supported syntax highlighting plugin](https://github.com/iwahbe/ion-mode).\n\n```emacs\n(add-to-list 'load-path  (expand-file-name \"/path/to/ion-mode\"))\n(require 'ion-mode)\n(autoload 'ion-mode (locate-library \"ion-mode\") \"Ion majore mode\" t)\n(add-to-list 'auto-mode-alist '(\"\\\\.ion\\\\'\" . ion-mode))\n(add-to-list 'auto-mode-alist '(\"/ion/initrc\" . ion-mode))\n```\n\n![Emacs Syntax Highlighting](.gitlab/emacs_syntax.png)\n\n# Lsp /IDE support\n\nThere is a LSP-server for the scripting language of this shell. \nYou can install the LSP-server via crates.io to get IDE support like error messages for an code editor or IDE which understands the client side of LSP. Link to LSP server on crates.io : https://crates.io/crates/ion_shell_lsp_server .\nThe source code of the LSP server can be found here: https://gitlab.redox-os.org/redox-os/ion_lsp .\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredox-os%2Fion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fredox-os%2Fion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fredox-os%2Fion/lists"}