diff --git a/backend/README.md b/backend/README.md index d0a576f..0359d42 100644 --- a/backend/README.md +++ b/backend/README.md @@ -1,22 +1,20 @@ # Fluksio -A node-based automation engine: flows, dashboards and batch runs, in one -resident process with no infrastructure behind it. +Fluksio is a node-based automation software that brings trust and reliability to your flow. +It just works and looks good. +Get started by running ```sh pip install fluksio fluksio serve ``` -That is the whole installation — no Docker, no database server, no ports to -open. It keeps a SQLite database, a git repository of your flows and an -artifact store under `~/.fluksio`, and prints an admin password once. +and you're ready to go! +Fluksio keeps a SQLite database, a git repository of your flows and an artifact store under `~/.fluksio`, and prints an admin password once upon start. ## For data science -Your functions become nodes where they already live. Install Fluksio into the -environment you work in and your nodes run on it — the packages are already -there: +You can turn your existing data science project into a flow by decorating your functions with `@node` ... ```python # myresearch/train.py @@ -35,6 +33,8 @@ def fit(dataset, lr, epochs=25): return {"weights": fluksio.save_artifact("weights.pt")} ``` +... and passing them to a `Flow`: + ```python # myresearch/pipeline.py from fluksio import Flow, Port @@ -44,36 +44,30 @@ train = Flow("train", nodes=[prepare, fit, evaluate], inputs=[Port("lr", "float", initial=0.01)], outputs=["score"]) ``` +Fluksio will automatically infer the order of nodes based on the inputs and outputs you defined. +When everything is set, you can access a dashboard as follows: + ```sh fluksio login --url http://127.0.0.1:8000 fluksio sync myresearch fluksio run train --lr 0.05 --wait ``` -The decorators return your functions untouched, so everything stays callable, -testable and importable as what it was. A metric leaves through a declared -port rather than a logging call, which is why there is no `log_metric()`: the -run keeps the whole series, a chart can bind to it, and a downstream node can -consume it. +Checkout our [documentation](https://docs.fluksio.com/getting-started/data-science/) for more infos. -## What else it does +## Some other features -- **Flows** — typed messages between nodes, wired by name, edited on a canvas +- **Flows**: typed messages between nodes, wired by name, edited on a canvas or declared in code. Every change is a commit in a git repository you own. -- **Runs** — an experiment and a CI-style job are the same entity. Parameters, +- **Runs**: an experiment and a CI-style job are the same entity. Parameters, seed, result, per-node timings, artifacts and the commit it ran at. -- **Dashboards** — charts and controls bound to the same messages the flows +- **Dashboards**: charts and controls bound to the same messages the flows carry, with no separate metrics pipeline. -- **Remote workers** — `pip install fluksio-worker` on the GPU box; it dials +- **Remote workers**: `pip install fluksio-worker` on the GPU box; it dials *out* over one websocket, so nothing there has to be reachable. -## Links - -- Documentation: -- Getting started (data science): -- Home: - -Python 3.12 or newer, Linux or macOS. +Fluksio can also be used for facility automation. +Visit us on [Fluksio.com](fluksio.com) or go straight to our [documentation](https://docs.fluksio.com). ## License