{"id":15365401,"url":"https://github.com/ambelovsky/gosf","last_synced_at":"2025-04-14T13:11:46.287Z","repository":{"id":57483556,"uuid":"183531443","full_name":"ambelovsky/gosf","owner":"ambelovsky","description":"Go SocketIO API Framework","archived":false,"fork":false,"pushed_at":"2020-11-09T20:13:45.000Z","size":45,"stargazers_count":102,"open_issues_count":8,"forks_count":14,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-28T02:14:25.371Z","etag":null,"topics":["framework","go","golang","socket-io","socket-io-server"],"latest_commit_sha":null,"homepage":"http://gosf.io","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/ambelovsky.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-04-26T00:59:18.000Z","updated_at":"2025-03-07T11:41:37.000Z","dependencies_parsed_at":"2022-08-28T17:01:49.208Z","dependency_job_id":null,"html_url":"https://github.com/ambelovsky/gosf","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/ambelovsky%2Fgosf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ambelovsky%2Fgosf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ambelovsky%2Fgosf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ambelovsky%2Fgosf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ambelovsky","download_url":"https://codeload.github.com/ambelovsky/gosf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248886324,"owners_count":21177643,"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":["framework","go","golang","socket-io","socket-io-server"],"created_at":"2024-10-01T13:14:40.077Z","updated_at":"2025-04-14T13:11:45.922Z","avatar_url":"https://github.com/ambelovsky.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Socket.IO Framework (GOSF)\nGo Socket.IO Framework or GOSF is an easy-to-use framework for developing Socket.IO API's in Google's Go language (GoLang).\n\nSupport ongoing development efforts with a transfer to BTC wallet 13pkXi8bW5bKjWewQYtv36CUgwhgQEn7eA\n\n**Supports Socket.IO Version 2**\n\nAn example server to help you get started can be found at [github.com/ambelovsky/gosf-sample-app](https://github.com/ambelovsky/gosf-sample-app).\n\nFor an in-depth look at the API Framework, check us out at [gosf.io](http://gosf.io).\n\n## Get It\n\n```sh\ngo get -u \"github.com/ambelovsky/gosf\"\n```\n\n## Features\n\n* Socket.IO v2 Support\n* Request/Response Acknowledgement-Based Cycle\n* Broadcast/Room Support\n* Microservices Using Socket.IO\n* Plugable Architecture\n* App, Client, and Request Contexts\n* Standardized Message Format\n\n## Quick Start\n\nThe following sample will start a server that responds on an \"echo\" endpoint and return the same message received from the client back to the client.\n\n### Server\n\n```go\npackage main\n\nimport (\n  f \"github.com/ambelovsky/gosf\"\n)\n\nfunc init() {\n  // Listen on an endpoint\n  f.Listen(\"echo\", func(client *f.Client, request *f.Request) *f.Message {\n    return f.NewSuccessMessage(request.Message.Text)\n  })\n}\n\nfunc main() {\n  // Start the server using a basic configuration\n  f.Startup(map[string]interface{}{\n    \"port\": 9999})\n}\n```\n\n### Client\n```html\n\u003cscript src=\"https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.slim.js\"\u003e\u003c/script\u003e\n\u003cscript\u003e\n  var socket = io.connect('ws://localhost:9999', { transports: ['websocket'] });\n\n  socket.emit('echo', { text: 'Hello world.' }, function(response) {\n    console.log(response);\n  });\n\u003c/script\u003e\n```\n\n## Learn More\n\nDiscover more about GOSF with the complete documentation at [gosf.io](http://gosf.io).\n\n## Documenting Your API\n\nWhile you're building your API, take some time to build the documentation too!  Check out [github.com/ambelovsky/go-api-docs](https://github.com/ambelovsky/go-api-docs) for an\neasy-to-use documentation system built using the slate theme.\n\n## Original Author\n\n[Aaron Belovsky](https://github.com/ambelovsky) is a senior technologist, avid open source contributor, and author of GOSF.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fambelovsky%2Fgosf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fambelovsky%2Fgosf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fambelovsky%2Fgosf/lists"}