🕊️ peace – zero stress automation
peace
is a framework to build user friendly software automation.
See:
MOTIVATION.md
for the motivation to create this framework.- Operations UX for a book about the dimensions considered during
peace
's design and development.
Guiding Principles
- A joy to use.
- Ergonomic API and guidance to do the right thing.
- Understandable output.
Features
Symbol | Meaning |
---|---|
🟢 | Works well |
🟡 | Partial support |
⚫ | Planned |
🔵 | Compatible by design |
🟣 | Works, "fun idea" |
- 🟢 Define items to manage with automation
- 🟢 Define dependencies between items
- 🟢 Discover current and desired states
- 🟢 Show diff: what would change
- 🟢 Store and recall parameters across commands
- 🟢 Concurrent task execution via
fn_graph
- 🟢 Skip unnecessary work
- 🟢 Idempotence: Multiple executions
- 🟢 Show state differences
- 🟢 Namespaced profile directories
- 🟢 Resource clean up
- 🟢 Understandable progress (#42)
- 🟡 Feature-gated incremental functionality
- 🟡 Off-the-shelf support for common items
- 🟡 Dry run
- 🔵 Understandable error reporting via
miette
- 🔵 Actionable error messages
- 🟣 WASM support
- ⚫ Tutorial for writing a software lifecycle management tool
- ⚫ Built-in application execution methods -- CLI, web service
- ⚫
peace
binary for configuration based workflows - ⚫ Web based UI
- ⚫ Agent mode to run
peace
on servers (Web API invocation)
Further ideas:
- Back up current state
- Restore previous state
- Telemetry logging for monitoring
- Metrics collection for analysis
Examples
Examples are run using --package
instead of --example
, as each example is organized as its own crate.
# e.g.
for
do
done
WASM
The download
example can be built as a web assembly application using wasm-pack
:
In the examples/download
directory, start an HTTP server, and open http://localhost:8000/:
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (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.