{"id":38237154,"url":"https://github.com/lnashier/glow","last_synced_at":"2026-01-17T01:07:16.736Z","repository":{"id":233601591,"uuid":"787189782","full_name":"lnashier/glow","owner":"lnashier","description":"Computational Framework","archived":false,"fork":false,"pushed_at":"2024-05-28T15:30:50.000Z","size":316,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-05-29T06:40:41.760Z","etag":null,"topics":["computation","computational","golang","network"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lnashier.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-16T03:59:50.000Z","updated_at":"2024-05-28T15:23:31.000Z","dependencies_parsed_at":"2024-04-16T22:40:57.757Z","dependency_job_id":"e989ef56-1b03-489e-ae30-fca924de28dc","html_url":"https://github.com/lnashier/glow","commit_stats":null,"previous_names":["lnashier/glow"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/lnashier/glow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnashier%2Fglow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnashier%2Fglow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnashier%2Fglow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnashier%2Fglow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lnashier","download_url":"https://codeload.github.com/lnashier/glow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lnashier%2Fglow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28490986,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computation","computational","golang","network"],"created_at":"2026-01-17T01:07:14.413Z","updated_at":"2026-01-17T01:07:16.720Z","avatar_url":"https://github.com/lnashier.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌟Computational Framework\n\n[![GoDoc](https://pkg.go.dev/badge/github.com/lnashier/glow)](https://pkg.go.dev/github.com/lnashier/glow)\n[![Go Report Card](https://goreportcard.com/badge/github.com/lnashier/glow)](https://goreportcard.com/report/github.com/lnashier/glow)\n\nThe `glow` is an idiomatic general purpose computational framework.\n\n## Installation\n\nSimply add the following import to your code, and then `go [build|run|test]` will automatically fetch the necessary\ndependencies:\n\n```\nimport \"github.com/lnashier/glow\"\n```\n\n## Examples\n\n[Examples](examples)\n\n## Node Function\n\nNode Function is the basic unit in the `glow` that processes the data.\n\n### Basic Function\n\nBasic Node Function (`BasicFunc`) allows a Node to operate in \"push-pull\" mode. The Network pushes data to BasicFunc,\nand it waits for the function to return with output data, which is then forwarded to connected Node(s).\n\n```\nfunc(ctx context.Context, data any) (any, error)\n```\n\n### Emit Function\n\nEmit Node Function (`EmitFunc`) allows a Node to operate in \"push-push\" mode. The Network pushes data to EmitFunc, and\nthe function emits zero or more data points back to the Network through the supplied callback emit function. Eventually,\nit returns control back to the Network.\n\n```\nfunc(ctx context.Context, data any, emit func(any)) error\n```\n\n## Node\n\nA Node is an abstraction over `Node Function` that forms connections among Node Functions, enabling the flow of data\nthrough the `glow` Network.\n\n### Isolated Node\n\nA Node with no links is considered an isolated-node.\n\n### Seed Node\n\nA Node with only egress links is considered a seed-node.\n\n### Transit Node\n\nA Node with both egress and ingress links is considered a transit-node.\n\n### Terminal Node\n\nA Node with only ingress links is considered a terminal-node.\n\n## Link\n\nA Link represents a connection between two Nodes, facilitating data flow from one Node to another.\n\n### Paused Link\n\nA Paused Link temporarily stops the flow of data between Nodes without removing the Link itself from the Network.\n\n### Removed Link\n\nA Removed Link permanently disconnects two Nodes, ceasing all data flow through that Link. The Network may be purged to\nphysically remove such links.\n\n## Mode\n\n### Broadcaster Mode\n\nIn Broadcaster Mode, a Node broadcasts all incoming data to all its outgoing links, ensuring that all downstream Nodes\nreceive the same data.\n\n### Distributor Mode\n\nIn Distributor Mode, a Node distributes incoming data among its outgoing links, balancing the data load across multiple\ndownstream Nodes.\n\n## Session\n\nA Session represents a single instance of data processing within the Network. It tracks the state and progress of data\nas it moves through the Nodes and Links.\n\n## Integrity Checks\n\n### Avoid Cycles\n\nThis check ensures that the Network remains a Directed Acyclic Graph (DAG), preventing any circular dependencies or\ninfinite loops.\n\n### Ignore Isolated Nodes\n\nThis option allows the Network to continue operating even when there are isolated Nodes, which have no incoming or\noutgoing links.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnashier%2Fglow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flnashier%2Fglow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flnashier%2Fglow/lists"}