herolib-core
Core utilities for the SAL (System Abstraction Library) including text processing, networking, and the HeroScript configuration language.
Installation
Or add to your Cargo.toml:
[]
= "0.1"
See https://crates.io/crates/herolib-core
Modules
heroscript
A defensive configuration and scripting language designed for safe, predictable system orchestration.
- Parse and execute HeroScript configuration files
- Type-safe parameter handling
- Wildcard action filtering
- Struct serialization with derive macros (
ToHeroScript,FromHeroScript) - Source tracking and write-back support
- Include system for modular scripts
use ;
let script = "!!server.define name:web1 host:localhost port:8080";
let playbook = new?;
let action = playbook.get?;
let name = action.params.get?;
let port = action.params.get_u16?;
text
Text processing and manipulation utilities.
dedent/prefix- Text indentation handlingname_fix/path_fix- String sanitization for filenamesTextReplacer- Regex and literal text replacement with chainingTemplateBuilder- Tera-based template rendering
use ;
let clean = dedent;
let safe = name_fix; // "hello_world_.txt"
let replacer = builder
.pattern
.replacement
.regex
.build?;
let result = replacer.replace;
net
Network connectivity utilities.
- TCP port checking
- HTTP endpoint validation
- SSH connectivity testing
use net;
let is_up = tcp_check;
Features
| Feature | Description |
|---|---|
default |
Base functionality |
git |
Enable git operations in HeroScript include processing |
Enable features in Cargo.toml:
[]
= { = "0.1", = ["git"] }
Rhai Integration
All modules are available in Rhai scripts when using the herolib runtime.
// HeroScript
let pb = playbook_from_text("!!server.define name:web1 port:8080");
let server = pb.get("server.define");
print(server.get("name"));
// Text
let safe = name_fix("My File.txt");
let clean = dedent(" indented text");
// Replacer
let replacer = text_replacer_new()
.pattern("old")
.replacement("new")
.build();
let result = replacer.replace("old text");
Related Packages
| Package | Description |
|---|---|
herolib-system |
OS, filesystem, download, package management |
herolib-clients |
Redis, PostgreSQL, MQTT, Mycelium clients |
herolib-toschema |
HeroScript derive macros |
License
See repository for license information.