-
-
Notifications
You must be signed in to change notification settings - Fork 1
Home
📝 This wiki is auto-synced from
docs/wikiin the main repository. Do not edit pages here — changes will be overwritten on the next sync. Edit via PR instead.
F-Mesh (aka FMesh or fmesh) is a Golang framework inspired by FBP (Flow-Based Programming) that enables the creation of data flow networks using interconnected components, each processing signals. Components may have multiple inputs and outputs called "ports" linked via type-agnostic pipes.
F-Mesh provides extension mechanisms including hooks (observability), labels and scalars (metadata), and collections/groups (working with multiple entities).
go get github.com/hovsep/fmesh
F-Mesh releases are named after 17 historical capitals of Armenia, honouring the ancient cities that played foundational roles in Armenian history. This tradition highlights the project's growth with each version, paralleling Armenia's own historical progression.
F-Mesh follows semantic versioning. See releases page for the latest version and changelog.
| Topic | Page |
|---|---|
| Quick start | 101. Quick start |
| Signals | 201. Signals |
| Labels & scalars | 202. Metadata |
| Collections & groups | 203. Collections and Groups |
| Components | 301. Component |
| Ports | 302. Ports |
| Pipes | 303. Pipes |
| Running the mesh | 401. Scheduling rules |
| Inspecting a run | 402. Inspecting a run |
| Hooks | 501. Hooks |
| Plugins | 502. Plugins |
| Configuration & tips | 601. Tips & tricks |
| Patterns & recipes | 602. Patterns & recipes |
| Export / visualization | 701. Export |
- FMesh — mesh, config, hooks
- Component
- Port
- Signal
- Meta (labels & scalars)
- Plugin (bundled mesh plugins)
The cycle package surfaces in the run-time report — see 402. Inspecting a run; hooks are covered in 501. Hooks.
fmesh-examples — runnable programs, from single-file demos to full applications. Highlights:
- pipeline — text-processing pipeline with a generic stage-chaining builder
- filter — label-based content routing
- fibonacci — feedback-loop generator via loopback pipes
- electric_circuit — stateful two-component feedback loop with natural termination
- load_balancer — round-robin dispatch/collect with indexed ports
- async_input — driving a mesh from live external input (HTTP crawler)
- nesting — a mesh running inside a component
- can_bus — broadcast bus topology; the advanced variant models a full CAN protocol stack
- simulation — interactive REPL-driven step simulation harness
- life — large tick-driven physiological simulation with nested meshes and a live TUI
- graphviz — static and per-cycle graph export
The techniques these examples demonstrate are cataloged in 602. Patterns & recipes.