Crates.io | botwork |
lib.rs | botwork |
version | 0.2.0 |
source | src |
created_at | 2023-04-16 08:22:38.843647 |
updated_at | 2023-04-16 09:18:57.097462 |
description | botwork is a single-binary, generic and open-source automation framework written in Rust for acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA). The syntax is basically plain text (in any human lanuage) with parameters. Easily extendible with Rust, Python & JavaScript. An efficient, fast alternative to Robot Framework. |
homepage | https://github.com/nitimis/botwork |
repository | https://github.com/nitimis/botwork |
max_upload_size | |
id | 840421 |
size | 55,301 |
botwork is a single-binary, generic and open-source automation framework written in Rust for acceptance testing, acceptance test driven development (ATDD), and robotic process automation (RPA). The syntax is basically plain text (in any human lanuage) with parameters. Easily extendible with Rust, Python & JavaScript. An efficient, fast alternative to Robot Framework.
I have been using RobotFramework for a couple of years now. While it is a super-awesome framework, there are a couple of things that I am not very fond of:
${}
, @{}
, etc. variable usage confuses people who are new to the framework.I wanted:
An efficient, fast, single-binary tool.
An even more simpler syntax than RobotFramework.
Extendible with Rust, Python (via PyO3), JavaScript (via neon), etc
Proper language defnition with PEG parser.
LSP & TreeSitter Support.
Most of all, to have fun building something that I can introduce to my kids.
cargo run -- --file examples/02-syntaxes.botwork
Or you can create a file from below sample and pass the path to cargo run
Here is what a botwork script might looke like right now
# Declaration
What is square-root of |number| divided by |divisor| equals, eh?!... {
|square| = |number ^ 2|
Return |square/divisor|
Log |"This statement will never execute"|
}
# Invocation (case-insensitive)
|answer| = WHAT is sQuAre-RoOt of |6| divided by|2|equals, EH?!...
Log |"Here is your answer:"|
Log |answer|
botwork is just taking its baby steps. There are so many things that are still missing and it goes without saying the the syntax & apis will change any time. Not to mention the hacy code that I managed to get working over the weekend. The Idea is to let it out in the wild and see if people are interested in a tool like this.
If there is interest out there for a tool like botwork, I plan to dedicate more time to make v1.0 happen. So here is a bunch of things that needs to be done before botwork can be tagged v1.0: