Skip to content
github-actions[bot] edited this page Jul 29, 2026 · 21 revisions

📝 This wiki is auto-synced from docs/wiki in 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).

Installation

go get github.com/hovsep/fmesh

Release naming and versioning conventions

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.

User guide

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

API reference (user-facing packages)

The cycle package surfaces in the run-time report — see 402. Inspecting a run; hooks are covered in 501. Hooks.

Examples

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.

Clone this wiki locally