- Notifications
You must be signed in to change notification settings - Fork1
OOMOL Studio's workflow engine, implemented in Rust.
License
oomol/oocana-rust
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
OOMOL Studio's workflow engine, implemented in Rust.
To run
JavaScript/TypeScript
blocks like in OOMOL Studio, you need to install@oomol/node-executor.
npm install -g @oomol/node-executor @oomol/oocana-sdk# check nodejs-executor is added to $PATHwhich nodejs-executor
To run Python blocks like in OOMOL Studio, we need to installoocana-python-executor. You can install
python-executor
viapip install python-executor
.Typically, Python dependencies are installed in virtual environments, and package managers will addpython-executor
to $PATH (this behavior may vary depending on the package manager).
# activate python virtual environmentpip install oocana-python-executor oocana# check python-executor is added to $PATHwhich python-executor
This project produces a CLI executable program that supports multiple subcommands, among which therun
subcommand supports executing flow.
- install a mqtt broker and start it
# for macos: brew install mosquittoapt update&& apt install -y mosquitto# start mosquitto with port 47688 in background. If you want run mosquitto in foreground, you can remove -d option.mosquitto -d -p 47688
- run oocana command
During development, usecargo run
instead of the executable file, such as therun
subcommand:
cargo run run examples/base
examples has multiple examples, you can try them.
you can download different platform oocana binary fromgithub release
Usage instructions can be viewed throughcargo run help
.
- Install Rust.
- Execute
cargo build --release
at the project root. - The output will be at
target/release/oocana
.
clean:
cargo clean
release version won't print log to stdout and stderr. For user who want to see log in stdout and stderr, you can need pass--verbose
forrun
subcommand.
You can find allrun
subcommand logs in~/.oocana/session/<session_id>/
. Session id need to be replaced with the actual session id, if not given, oocana will generate a new random session id. For user who want to specify session id, you can pass--session <session_id>
forrun
subcommand.
This project uses a workspace (monorepo) structure.
cli
Configures command line parameterscore
Handles core scheduling businessexamples
A demo showing how to executemainframe
Manages communication between this program and executed block subprocessesmanifest_reader
Responsible for reading flow diagrams and block meta information from YAML files and processing them into internal structures for core to usesdk
Oocana block SDK implemented in Rust, used for testing this projectsrc
Rust program entry pointtests
Project testsutils
Reusable utility methods for this projectnpm
Packages binaries for different environments as NPM packages
About
OOMOL Studio's workflow engine, implemented in Rust.