{"id":27069459,"url":"https://github.com/tideland/go-cells","last_synced_at":"2025-04-05T21:33:43.425Z","repository":{"id":46319565,"uuid":"353311392","full_name":"tideland/go-cells","owner":"tideland","description":"Light-weight event-processing based on the idea of meshed cells with different pluggable behaviors","archived":false,"fork":false,"pushed_at":"2022-12-30T22:33:25.000Z","size":86,"stargazers_count":3,"open_issues_count":11,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-06-21T02:16:53.128Z","etag":null,"topics":["cep","data-analysis","data-stream","event-processing","events","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tideland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-31T10:08:03.000Z","updated_at":"2024-06-21T02:16:53.129Z","dependencies_parsed_at":"2023-01-31T17:02:03.413Z","dependency_job_id":null,"html_url":"https://github.com/tideland/go-cells","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tideland%2Fgo-cells","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tideland%2Fgo-cells/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tideland%2Fgo-cells/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tideland%2Fgo-cells/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tideland","download_url":"https://codeload.github.com/tideland/go-cells/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406077,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cep","data-analysis","data-stream","event-processing","events","golang"],"created_at":"2025-04-05T21:33:02.395Z","updated_at":"2025-04-05T21:33:43.413Z","avatar_url":"https://github.com/tideland.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tideland Go Cells\n\n[![GitHub release](https://img.shields.io/github/release/tideland/go-cells.svg)](https://github.com/tideland/go-cells)\n[![GitHub license](https://img.shields.io/badge/license-New%20BSD-blue.svg)](https://raw.githubusercontent.com/tideland/go-cells/master/LICENSE)\n[![Go Module](https://img.shields.io/github/go-mod/go-version/tideland/go-cells)](https://github.com/tideland/go-cells/blob/master/go.mod)\n[![GoDoc](https://godoc.org/tideland.dev/go/cells?status.svg)](https://pkg.go.dev/mod/tideland.dev/go/cells?tab=packages)\n![Workflow](https://github.com/tideland/go-cells/actions/workflows/go.yml/badge.svg)\n[![Go Report Card](https://goreportcard.com/badge/github.com/tideland/go-cells)](https://goreportcard.com/report/tideland.dev/go/cells)\n\n## Description\n\n**Tideland Go Cells** provides a light-weight event-processing. It is realized\nas a mesh of cells which can subsribe to each other. One cell can subscribe to\nmultiple cells as well as multiple cells can subscribe to one cell. Each cell\nruns an individual developed and/or configured behavior with an own state.\n\nI hope you like it. ;)\n\n## Behaviors\n\nThe project already contains some standard behaviors, the number is still growing.\n\n- **Aggregator** aggregates events and emits each aggregated value.\n- **Broadcaster** simply emits received events to all subscribers.\n- **Callback** calls a number of passed functions for each received event.\n- **Collector** collects events which can be processed on demand.\n- **Combo** waits for a user-defined combination of events.\n- **Condition** tests events for conditions using a tester function and calls a\n  processor then.\n- **Countdown** counts a number of events down to zero and executes an event returning\n  function. The event will be emitted then.\n- **Counter** counts events, the counters can be retrieved.\n- **Evaluator** evaluates events based on a user-defined function which returns a rating.\n- **Filter** re-emits received events based on a user-defined filter. Those can be including\n  or excluding.\n- **Mapper** allows to analyse events and map them into new one for emitting.\n- **One-Time** processes a user defined function only once for the first event, it will never\n  called again. Outgoing events can be emitted during processing.\n- **Pairer** allows to define a criterion for a first and second evend and a timeout\n  between those. Matches and timouts will be emitted.\n- **Rate Evaluator** measures times between a number of criterion fitting events and\n  emits statistical data about these fittings.\n- **Rate Window Evaluator** checks if a number of events in a given timespan matches\n  a given criterion. In case it processes them.\n\n## Contributors\n\n- Frank Mueller (https://github.com/themue / https://github.com/tideland / https://tideland.dev)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftideland%2Fgo-cells","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftideland%2Fgo-cells","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftideland%2Fgo-cells/lists"}