{"id":20002558,"url":"https://github.com/abhishekkr/goshare","last_synced_at":"2025-08-10T06:44:13.424Z","repository":{"id":10833370,"uuid":"13111633","full_name":"abhishekkr/goshare","owner":"abhishekkr","description":"Go Share your TimeSeries/NameSpace/KeyVal DataStore (using leveldb) over HTTP \u0026/or ZeroMQ","archived":false,"fork":false,"pushed_at":"2015-10-28T21:13:08.000Z","size":738,"stargazers_count":61,"open_issues_count":0,"forks_count":4,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-05-04T15:41:00.143Z","etag":null,"topics":["datastore","go","golang","http","leveldb","library","timeseries","zeromq"],"latest_commit_sha":null,"homepage":"http://abhishekkr.github.io/goshare","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/abhishekkr.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":"2013-09-26T03:01:56.000Z","updated_at":"2024-10-01T19:16:41.000Z","dependencies_parsed_at":"2022-09-14T19:40:32.519Z","dependency_job_id":null,"html_url":"https://github.com/abhishekkr/goshare","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/abhishekkr/goshare","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekkr%2Fgoshare","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekkr%2Fgoshare/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekkr%2Fgoshare/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekkr%2Fgoshare/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abhishekkr","download_url":"https://codeload.github.com/abhishekkr/goshare/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abhishekkr%2Fgoshare/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269688009,"owners_count":24459398,"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","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["datastore","go","golang","http","leveldb","library","timeseries","zeromq"],"created_at":"2024-11-13T05:22:12.502Z","updated_at":"2025-08-10T06:44:13.390Z","avatar_url":"https://github.com/abhishekkr.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Go Share\n\n```ASCII\n                        __\n   ____ _____     _____/ /_  ____ _________\n  / __ `/ __ \\   / ___/ __ \\/ __ `/ ___/ _ \\\n / /_/ / /_/ /  (__  ) / / / /_/ / /  /  __/\n \\__, /\\____/  /____/_/ /_/\\__,_/_/   \\___/\n/____/\n\n```\n\n[Tasks in Queue at Trello Board](https://trello.com/b/ZjDMRGQN/goshare)\n\ndistributed under [MIT License](http://opensource.org/licenses/MIT)\n\n#### Go Share any data among the nodes. Over HTTP or ZeroMQ.\n\n* GOShare eases up communication over HTTP GET param based interaction.\n* ZeroMQ REQ/REP based synchronous communication model.\n\nit's \"go get\"-able\n\n``` go get \"github.com/abhishekkr/goshare\" ```\n\n***\n\n#### Make Distributable Binary\n\n```bash\n./go-tasks.sh bin\n```\n\nThis will create two distributable binaries *./bin/goshare_service* \u0026 *./bin/goshare_daemon*. Here *./bin/goshare_service* works as shown in README's 'Tryout' section.\n\nWhereas *./bin/goshare_daemon* can be used as a system service daemon, with following command line flags (along with flags mentioned in 'Tryout' section for ports and db-path)\n\u003e\n\u003e * start: ``` ./bin/goshare_daemon -daemon=start ```\n\u003e * stop: ``` ./bin/goshare_daemon -daemon=stop ```\n\u003e * status: ``` ./bin/goshare_daemon -daemon=status ```\n\u003e\n\u003e *this dumps daemon's current status to /tmp/goshare_daemon.status and pid to /tmp/goshare_daemon.pid*\n\u003e *the status and pid file path can be changed with flags '-daemon-log=\u003cpath\u003e' \u0026 '-daemon-pid=\u003cpath\u003e' respectively*\n\u003e\n\n\n#### Tryout:\n\n```Shell\n go run zxtra/goshare_daemon.go -DBPath=/tmp/GOTSDB\n```\n\nBy default it runs HTTP daemon at port 9999 and ZeroMQ daemon at 9797/9898,\nmake it run on another port using following required flags\n\n```Shell\n go run zxtra/goshare_daemon.go -DBPath=/tmp/GOTSDB -port=8080 -req-port=8000 -rep-port=8001\n```\n\n```ASCII\n  Dummy Clients Using It\n\n  * go run zxtra/gohttp_client.go\n\n  * go run zxtra/go0mq_client.go\n\n\n  for custom Port: 8080 for HTTP; Port: 8000/8001 for ZeroMQ\n\n  * go run zxtra/gohttp_client.go -port=8080\n\n  * go run zxtra/go0mq_client.go -req-port=8000 -rep-port=8001\n```\n\n\u003e\n\u003e To utilize it \"zxtra/gohttp_client.go\" and \"zxtra/go0mq_client.go\" can be referred on how to utilize capabilities of GoShare.\n\u003e\n\n***\n\n#### Structure:\n\n\u003e \"goshare\"'s methods to adapt these in your code:\n\u003e\n\u003e * GoShare() : it runs HTTP and ZeroMQ daemon in parallel goroutines\n\u003e \u003e has optional flags customization of:\n\u003e \u003e * DBPath: path for LevelDB or other used (default: /tmp/GO.DB)\n\u003e \u003e * DBEngine: DB backend used (default: leveldb,; other options: sqlite3)\n\u003e \u003e * port: port to bind HTTP daemon (default: 9999)\n\u003e \u003e * req-port, rep-port: ports to bind ZeroMQ REQ/REP daemon (default: 9797, 9898)\n\u003e\n\u003e * GoShareHTTP(\u0026lt;levigo DB handle\u0026gt;, \u0026lt;http port as int\u0026gt;) : it runs HTTP daemon\n\u003e\n\u003e * GoShareZMQ(\u0026lt;levigo DB handle\u0026gt;, \u0026lt;req-port as int\u0026gt;, \u0026lt;rep-port as int\u0026gt;) : it runs ZMQ daemon\n\u003e\n\n***\n\nNow visit the the link asked by it and get the help page.\n\n##### Dependency\n* [go lang](http://golang.org/doc/install) (obviously, the heart and soul of the app)\n* [leveldb](http://en.wikipedia.org/wiki/LevelDB) (we are using for datastore, it's awesome)\n* [levigo](https://github.com/jmhodges/levigo/blob/master/README.md) (the go library utilized to access leveldb)\n* [zeroMQ](http://zeromq.org/) (the supercharged Sockets giving REQuest/REPly power)\n* [gozmq](https://github.com/alecthomas/gozmq) GoLang ZeroMQ Bindings used here\n* [levigoNS](https://github.com/abhishekkr/levigoNS) NameSpace KeyVal capabilities around leveldb via levigo\n* [levigoTSDS](https://github.com/abhishekkr/levigoTSDS) TimeSeries KeyVal capabilties around leveldb via levigoNS\n* [gol](https://github.com/abhishekkr/gol) Set of common utility functionalities\n\n[![baby-gopher](https://raw2.github.com/drnic/babygopher-site/gh-pages/images/babygopher-badge.png)](http://www.babygopher.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhishekkr%2Fgoshare","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabhishekkr%2Fgoshare","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabhishekkr%2Fgoshare/lists"}