{"id":13437232,"url":"https://github.com/redox-os/ion","last_synced_at":"2026-10-19T12:00:28.227Z","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":"2026-09-09T13:17:37.000Z","size":5071,"stargazers_count":1655,"open_issues_count":60,"forks_count":141,"subscribers_count":50,"default_branch":"master","last_synced_at":"2026-09-11T19:38:49.902Z","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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-10-07T12:45:04.000Z","updated_at":"2026-09-09T13:26:03.000Z","dependencies_parsed_at":"2024-02-25T17:30:18.494Z","dependency_job_id":"1813b7e0-37eb-4935-9c28-5e377fba8268","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,"purl":"pkg:github/redox-os/ion","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","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/redox-os%2Fion/sbom","scorecard":{"id":767974,"data":{"date":"2025-08-11","repo":{"name":"github.com/redox-os/ion","commit":"0f45730e2503ef7110f1adb6a2eaf005c577f082"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.3,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":1,"reason":"2 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":9,"reason":"binaries present in source code","details":["Warn: binary detected: sh-interrupt/catcher:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":10,"reason":"project is fuzzed","details":["Info: RustCargoFuzzer integration found: fuzz/fuzz_targets/parser.rs:2"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.0.5 not signed: https://api.github.com/repos/redox-os/ion/releases/7050709","Warn: release artifact 1.0.4 not signed: https://api.github.com/repos/redox-os/ion/releases/6978651","Warn: release artifact 1.0.3 not signed: https://api.github.com/repos/redox-os/ion/releases/6747159","Warn: release artifact 1.0.5 does not have provenance: https://api.github.com/repos/redox-os/ion/releases/7050709","Warn: release artifact 1.0.4 does not have provenance: https://api.github.com/repos/redox-os/ion/releases/6978651","Warn: release artifact 1.0.3 does not have provenance: https://api.github.com/repos/redox-os/ion/releases/6747159"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Vulnerabilities","score":0,"reason":"16 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: RUSTSEC-2021-0139","Warn: Project is vulnerable to: RUSTSEC-2021-0145 / GHSA-g98v-hv3f-hcfr","Warn: Project is vulnerable to: RUSTSEC-2024-0375","Warn: Project is vulnerable to: RUSTSEC-2024-0388","Warn: Project is vulnerable to: RUSTSEC-2024-0384","Warn: Project is vulnerable to: RUSTSEC-2023-0055 / GHSA-c2hm-mjxv-89r4","Warn: Project is vulnerable to: GHSA-2326-pfpj-vx3h","Warn: Project is vulnerable to: RUSTSEC-2023-0086","Warn: Project is vulnerable to: RUSTSEC-2020-0016","Warn: Project is vulnerable to: RUSTSEC-2021-0119 / GHSA-76w9-p8mg-j927 / GHSA-wgrg-5h56-jg27","Warn: Project is vulnerable to: RUSTSEC-2021-0140","Warn: Project is vulnerable to: RUSTSEC-2021-0127","Warn: Project is vulnerable to: RUSTSEC-2023-0059 / GHSA-jcr6-4frq-9gjj","Warn: Project is vulnerable to: GHSA-m65q-v92h-cm7q","Warn: Project is vulnerable to: RUSTSEC-2023-0040","Warn: Project is vulnerable to: RUSTSEC-2025-0040"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-23T01:24:11.100Z","repository_id":1893409,"created_at":"2025-08-23T01:24:11.100Z","updated_at":"2025-08-23T01:24:11.100Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":344872684,"owners_count":38356432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-19T02:00:06.414Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2026-10-19T12:00:27.829Z","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"}