{"id":36674476,"url":"https://github.com/sangianpatrick/emitty","last_synced_at":"2026-01-12T10:47:24.172Z","repository":{"id":40437479,"uuid":"192078007","full_name":"sangianpatrick/emitty","owner":"sangianpatrick","description":"A simple Event Emitter package for Golang application ","archived":false,"fork":false,"pushed_at":"2019-06-28T04:01:54.000Z","size":31,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-15T20:22:36.001Z","etag":null,"topics":["event-emitter","go-channel","go-routine","golang","golang-package","worker-threads"],"latest_commit_sha":null,"homepage":null,"language":"Go","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/sangianpatrick.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":"2019-06-15T12:50:10.000Z","updated_at":"2022-06-26T09:29:41.000Z","dependencies_parsed_at":"2022-09-04T19:11:11.757Z","dependency_job_id":null,"html_url":"https://github.com/sangianpatrick/emitty","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sangianpatrick/emitty","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangianpatrick%2Femitty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangianpatrick%2Femitty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangianpatrick%2Femitty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangianpatrick%2Femitty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sangianpatrick","download_url":"https://codeload.github.com/sangianpatrick/emitty/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sangianpatrick%2Femitty/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T10:40:25.642Z","status":"ssl_error","status_checked_at":"2026-01-12T10:39:27.820Z","response_time":98,"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":["event-emitter","go-channel","go-routine","golang","golang-package","worker-threads"],"created_at":"2026-01-12T10:47:23.566Z","updated_at":"2026-01-12T10:47:24.155Z","avatar_url":"https://github.com/sangianpatrick.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emitty\n\nA simple Event Emitter package for Golang application. This package contains both Emitter and Event.\nEmitter only has one function \"Emit()\" that send the data to the listener. Before the listener do its jobs, Event should attach an event name and a handler (to be executed after event is catched) by AttachEvent function, but if the event is needless, it could be detached by DetachEvent function.\n\n## How to install\n\nUsing go get :\n\n```go get -u github.com/sangianpatrick/emitty```\n\nUsing DEP :\n\n```dep ensure -add github.com/sangianpatrick/emitty```\n\n## How to use\n\nThis is the package implementation.\n\n```\npackage main\n\nimport (\n\t\"fmt\"\n\t\"time\"\n\n\t\"github.com/sangianpatrick/emitty\"\n)\n\nvar debug bool\n\nfunc init() {\n\tdebug = true\n}\n\nfunc main() {\n\tdefer func() {\n\t\tr := recover()\n\t\tif r != nil {\n\t\t\tfmt.Println(\"Panic Recovered\", r)\n\t\t}\n\t}()\n\n\tfmt.Println(\"Emitty Simple Usage\")\n\n\tsignal := emitty.New(debug)\n\tlistener := emitty.NewListener(\u0026emitty.Config{\n\t\tSignal:          signal,\n\t\tNumberOfWorkers: 3,\n\t})\n\temitter := emitty.NewEmitter(signal)\n\n\terr := listener.AttachEvent(\u0026emitty.Event{\n\t\tName:             \"printStr\",\n\t\tActiveOn:         time.Now().Add(time.Second * 0),\n\t\tExpiration:       time.Second * 15,\n\t\tHandler:          exampleHandler,\n\t\tMaxHits:          5,\n\t\tStartImmediately: true,\n\t})\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tlistener.Start()\n\n\ttime.Sleep(time.Second * 3)\n\n\temitter.Emit(\"printStr\", \"Hello World\\n\")\n\n\tfmt.Scanln()\n}\n\nfunc exampleHandler(args ...interface{}) {\n\tif str, ok := args[0].(string); ok {\n\t\tfmt.Printf(\"String: %s\", str)\n\t}\n}\n```\n\nThe result will be:\n\n```\nEmitty Simple Usage\nEmitty [INFO]: Name: Listener | Message: Running on 3 workers | Data \u003cnil\u003e\nEmitty [INFO]: Name: Listener | Message: Executing handler on event 'printStr' | Data \u003cnil\u003e\nString: Hello World\nEmitty [INFO]: Name: Listener | Message: Event with name 'printStr' has been detached | Data \u003cnil\u003e\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangianpatrick%2Femitty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsangianpatrick%2Femitty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsangianpatrick%2Femitty/lists"}