Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azriel91/choochoo
Automation that starts where it stops.
https://github.com/azriel91/choochoo
hacktoberfest rust
Last synced: 3 months ago
JSON representation
Automation that starts where it stops.
- Host: GitHub
- URL: https://github.com/azriel91/choochoo
- Owner: azriel91
- Created: 2020-12-23T06:59:38.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-06-27T04:41:47.000Z (over 1 year ago)
- Last Synced: 2024-09-16T13:44:46.132Z (3 months ago)
- Topics: hacktoberfest, rust
- Language: Rust
- Homepage:
- Size: 416 KB
- Stars: 6
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚂 Choo Choo
[![Crates.io](https://img.shields.io/crates/v/choochoo.svg)](https://crates.io/crates/choochoo)
[![docs.rs](https://img.shields.io/docsrs/choochoo)](https://docs.rs/choochoo)
[![CI](https://github.com/azriel91/choochoo/workflows/CI/badge.svg)](https://github.com/azriel91/choochoo/actions/workflows/ci.yml)
[![Coverage Status](https://codecov.io/gh/azriel91/choochoo/branch/main/graph/badge.svg)](https://codecov.io/gh/azriel91/choochoo)`choochoo` is a library that supports building operations tools with good user experience.
**Note:** This is still in early development, so expect frequent API breakages.
See:
* [`MOTIVATION.md`](MOTIVATION.md) for the motivation to create this library.
* [Operations UX](https://azriel.im/ops_ux/) for a book about the dimensions considered during `choochoo`'s design and development.
* The [examples](examples) directory for usage examples.## Demo
https://user-images.githubusercontent.com/2993230/116825827-04b89c00-abe5-11eb-9e83-2a223f859ddd.mp4
## Features
| Symbol | Meaning |
| :----: | ---------------- |
| 🟢 | Supported |
| 🟡 | Work in progress |
| ⚫ | Planned |* 🟢 Workflow graph with task dependencies
* 🟢 Concurrent task execution
* 🟢 Understandable error reporting (via [`codespan`](https://github.com/brendanzab/codespan))
* 🟢 Skip unnecessary work
* 🟢 Understandable progress
* 🟢 Actionable error messages
* 🟢 Namespaced working directory ([#21](https://github.com/azriel91/choochoo/issues/21))
* 🟡 Resource clean up ([#28](https://github.com/azriel91/choochoo/issues/28))
* 🟡 API Ergonomics and ease of doing the right thing.
* âš« Dry run
* âš« `choochoo` binary for configuration based workflows
* âš« Off-the-shelf support for common tasks
* âš« Web based UI
* âš« Agent mode to run `choochoo` on servers (Web API invocation)Ideas which may be considered:
* Back up current state
* Restore previous state
* Telemetry logging for monitoring
* Metrics collection for analysis## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or https://opensource.org/licenses/MIT)at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.