{"id":22490000,"url":"https://github.com/surebot/Eventline","last_synced_at":"2025-08-02T22:31:55.247Z","repository":{"id":57157452,"uuid":"95966946","full_name":"surebot/Eventline","owner":"surebot","description":"Micro-framework for routing and handling events for bots and applications 🤖. IFTTT for developers 👩‍💻👨‍💻","archived":false,"fork":false,"pushed_at":"2018-05-21T08:56:51.000Z","size":2208,"stargazers_count":305,"open_issues_count":0,"forks_count":20,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-08-31T23:34:35.029Z","etag":null,"topics":["botkit","chatbot","event-driven","eventbus","messenger-platform","router"],"latest_commit_sha":null,"homepage":"https://eventline.surebot.io/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surebot.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","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":"2017-07-01T13:50:34.000Z","updated_at":"2024-01-04T16:15:21.000Z","dependencies_parsed_at":"2022-09-07T21:00:43.078Z","dependency_job_id":null,"html_url":"https://github.com/surebot/Eventline","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surebot%2FEventline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surebot%2FEventline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surebot%2FEventline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surebot%2FEventline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surebot","download_url":"https://codeload.github.com/surebot/Eventline/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228500621,"owners_count":17930099,"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":["botkit","chatbot","event-driven","eventbus","messenger-platform","router"],"created_at":"2024-12-06T17:21:37.024Z","updated_at":"2024-12-06T17:23:47.703Z","avatar_url":"https://github.com/surebot.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Eventline\nEventline is a micro-framework for routing and handling events for bots and applications.\n\nIt helps to easily build systems that respond to a stream of events in a consistent manner and are easy to test, as well as understand.\n\nEventline focuses on the Router in the ERA (Event Source, Router, Action) architecture pattern, whilst providing a convention over configuration design to make it easier to integrate other systems.\n\nYou can use Eventline either on its own with custom event sources or other frameworks such as Botpress or Botkit.\n\n## Installation\nTo install simply run:\n\n`npm install eventline --save`\n\nTo see an example, clone this repo and run:\n`npm run example`\n\n## Examples\n\n```js\non(event)\n.then(this)\n.then(that)\n```\n\n## Features\n\n**Convention over configuration**\nWe've optimised Eventline for developer productivity\nby implementing a declarative API which makes it easy to\nunderstand what your application is doing.\n\n**Easily Extendable**\nWe have a very flexible middleware and component system to\neasily extend your application with new functionality and consume\nlibraries.\n\n**Modern but well supported**\nEventline is written in Typescript to ensure\nthe code is stable and robust whilst still supporting ECMAScript 5.\n\n**Async Support**\nEventline is built on top of ES5 Promises making asynchronous\nbehaviour a first class citizen without having to drop down into\npromise or callback hell.\n\n**Lightweight**\nEventline is the Router in the ERA (Event Source, Router, Action) Architecture.\nIt's a lightweight complement to your own custom code or frameworks such as a Botpress or Botkit rather than yet another bot framework.\n\nIf you don't believe us, It has 3 dependencies in total.\n\n**Stateless**\nEverything is built to promote a stateless architecture, each action and middleware built\naround functional programming; taking an event and returning it to be given to the next step.\n\nThis makes it easier to reason about what's happening within your application.\n\n## Used By\n- Eventline echo-bot: [Try here](https://facebook.com/Eventline-123597441623033/). [Github repo](https://github.com/surebot/eventline-messenger-bot)\n- Sure Messenger chatbot: Bot that curates the most Instagrammed food \u0026 drink spots. https://surebot.io\n\n## Developer Experience\n\nI wrote Eventline as a lightweight way of getting a basic way of easily build a chatbot for Sure. I already built and contributed to frameworks like Bottr and Botpress that take a\nall-or-nothing approach to adoption.\n\nIt's easy to build a predictable and easy to understand chatbot with this framework without having to re-write your entire app.\n\n## Influences\n\nEventline draws parallels from React, Express.js and Redux with it's component and declarative based architecture.\n\nIt combines features from Bottr, Botpress and BroidKit to provide a flexible, yet easy to use router system.\n\n## Motivation\n\nChatbots are inherently a very asynchronous, state and event based applications.\nAs mentioned in the Redux documentation, our code has to manage more of this than ever before.\n\nTo get an idea of some of the motivation behind Eventline, you should read the\nRedux documentation http://redux.js.org/docs/introduction/Motivation.html\n\nWe tried to bring some of this thinking to the chatbot world, making it easier to route\nevents to a series of actions in a declarative fashion.\n\n## Contributing\n\nWe are grateful to the community for contributing bug fixes and improvements.\n\n## Acknowledgments\n- [James Campbell](https://github.com/jcampbell05)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurebot%2FEventline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurebot%2FEventline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurebot%2FEventline/lists"}