{"id":13503123,"url":"https://github.com/rust-crates/ergo","last_synced_at":"2026-04-09T14:01:44.659Z","repository":{"id":57625706,"uuid":"118936915","full_name":"rust-crates/ergo","owner":"rust-crates","description":"the ergo crate ecosystem: making rust's ecosystem more ergonomic, therefore more fun.","archived":false,"fork":false,"pushed_at":"2019-03-07T01:22:19.000Z","size":99,"stargazers_count":58,"open_issues_count":6,"forks_count":3,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-27T23:16:51.233Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rust-crates.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-25T16:18:38.000Z","updated_at":"2024-03-29T17:27:09.000Z","dependencies_parsed_at":"2022-09-19T15:00:51.996Z","dependency_job_id":null,"html_url":"https://github.com/rust-crates/ergo","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-crates%2Fergo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-crates%2Fergo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-crates%2Fergo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rust-crates%2Fergo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rust-crates","download_url":"https://codeload.github.com/rust-crates/ergo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246190224,"owners_count":20737998,"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-31T22:02:37.995Z","updated_at":"2025-12-12T13:21:16.758Z","avatar_url":"https://github.com/rust-crates.png","language":"Rust","readme":"# Ergo: making rust's ecosystem more ergonomic, therefore more fun.\n\n[![Build Status](https://travis-ci.org/rust-crates/ergo.svg?branch=master)](https://travis-ci.org/rust-crates/ergo)\n[![Build status](https://ci.appveyor.com/api/projects/status/iet58b7gj9jh19mt?svg=true)](https://ci.appveyor.com/project/vitiral/ergo-5l7h9)\n[![Docs](https://docs.rs/ergo/badge.svg)](https://docs.rs/ergo)\n\n\n_The Ergo Ecosystem_ is an effort to unify the rust ecosystem at critical\nsections. It is currently focused on improving Command Line Interface (CLI)\nergonomics. To accomplish this it will create _multiple targeted\nconglomeration_ crates. These crates do much more than simply exporting the\nAPI of their sub-crates. They implement wrapper types to unify them, as well\nas have tested documentation to ensure they interopate together reliably.\n\n@autron said it best in the\n[rust 2018 roadmap](https://github.com/aturon/rfcs/blob/roadmap-2018/text/0000-roadmap-2018.md#cli-apps)\n\n\u003e ### CLI apps\n\u003e \u003e Rust is a fantastic language for writing a Command Line Application (CLI).\n\u003e \u003e For the ergonomics of hacking, it has one of the best argument parsers\n\u003e \u003e ever, has seriously the best serialization library ever and it compiles to\n\u003e \u003e almost any target and goes fast when it runs. (@vitiral)\n\u003e\n\u003e Rust has also seem some production update in the CLI space, for which it is\n\u003e very well-suited. This is a space where Rust’s portability, reliability, and\n\u003e ability to produce static binaries make it extremely attractive. We also have a\n\u003e number of excellent libraries already. This year, we will improve this\n\u003e ecosystem and pull it together into a polished, coherent package for people\n\u003e checking out Rust. Read @vitiral’s post and @killercup’s crate for some\n\u003e inspiration!\n\n\n# Vision\nErgo's current goal is to be a full featured CLI SDK, built from composable\nand distinct sub components. You should be able to depend on the `ergo` library\nitself or each of its sub components individually.\n\nErgo aims to provide the following benefits:\n- A standardized API for disparate types/approaches, allowing library authors\n  to develop simple libraries of high quality, which can then be combined into\n  an ecosystem with a unified API and excellent ergonomics.\n- A starting point for CLI and application developers for documentation and\n  *How To* guides. We hope to release an **Ergo Cookbook** once the libraries\n  are more stable.\n- Encourage interopability, quality, and ergonomic errors among the major CLI\n  crates in the rust ecosystem and act as a driver towards higher quality and\n  uniformity.\n\n\n# Sub Crates\nThe ergo ecosystem is split into multiple crates, each with the prefix `ergo_`\n\nThe `ergo` crate itself is _currently in alpha status_. The primary author is\nrewriting his CLI application using it to get the rough edges ironed out and\nwe are looking for feedback, contributors and leaders from the community\nduring this time\n\nFor now, consuder using [quicli](https://github.com/killercup/quicli) which\nwill [integrate cleanly with the ergo\necosystem](https://github.com/killercup/quicli/issues/43) in the future.\nIf you _do_ use this crate expect frequenty changes that are not semver\ncompliant.\n\n\n## Implemented Sub Crates\n- [x] [**ergo_fs**](https://github.com/vitiral/ergo_fs): ergonomic filesystem\n  operations. (_beta status_)\n- [x] [**ergo_sync**](https://github.com/rust-crates/ergo_sync): provides an\n  ultra-simple API for using `Sync` types, i.e. running threads and sending\n  messages. (_beta status_)\n- [x] [**ergo_std**](https://github.com/rust-crates/ergo_std): \"generally\n  needed stuff\" -- `regex`, `lazy_static`, `maplit`, `itertools`, `ordermap`.\n  This will be _very few crates_. It is mostly composed of things which could\n  practically be in the std library. (_beta status_)\n- [x] [**ergo_config**](https://github.com/rust-crates/ergo_config):\n  deserialization and config files and ENV variables: `ron`, `toml`,\n  `serde_json`, `serde_yaml`, `configure` (_alpha status_)\n- [x] [**ergo_sys**](https://github.com/rust-crates/ergo_sys): deal with\n  interfacing with the OS. Examples currently only include signal handling\n  (`ctrlc`) and randomness (`rand`) but we are looking for other important\n  crates. (_alpha status_)\n\n\n## Future Sub Crates\n- [ ] **ergo_client**: methods/types to be an HTTP client. Sub crates probably\n  include `reqwest`, `h2` and some kinds of json-rpc+soap protocol helpers.\n- [ ] **ergo_term**: simple and ergonomic terminal rendering.\n- [ ] **ergo_test**: one-stop-shop for core testing functionality, mocking,\n  etc.\n\n\n# LICENSE\nThe source code in this repository is Licensed under either of\n- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n  http://www.apache.org/licenses/LICENSE-2.0)\n- MIT license ([LICENSE-MIT](LICENSE-MIT) or\n  http://opensource.org/licenses/MIT)\n\nat your option.\n\nUnless you explicitly state otherwise, any contribution intentionally submitted\nfor inclusion in the work by you, as defined in the Apache-2.0 license, shall\nbe dual licensed as above, without any additional terms or conditions.\n","funding_links":[],"categories":["Rust"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-crates%2Fergo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frust-crates%2Fergo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frust-crates%2Fergo/lists"}