All Projects → abhishekkr → Goshare

abhishekkr / Goshare

Licence: mit
Go Share your TimeSeries/NameSpace/KeyVal DataStore (using leveldb) over HTTP &/or ZeroMQ

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Goshare

Tmlibs
DEPRECATED: Merged into https://github.com/tendermint/tendermint under `libs`
Stars: ✭ 45 (-23.73%)
Mutual labels:  leveldb, library
Pystore
Fast data store for Pandas time-series data
Stars: ✭ 325 (+450.85%)
Mutual labels:  datastore, timeseries
Countrycodepickerproject
Country Code Picker (CCP) is an android library which provides an easy way to search and select country or international phone code. Also supports Android EditText phone mask and international phone validation.
Stars: ✭ 1,085 (+1738.98%)
Mutual labels:  library
Cordova Plugin Device Motion
Apache Cordova Plugin device-motion
Stars: ✭ 58 (-1.69%)
Mutual labels:  library
Macfinder
An iOS Library that helps you find the MAC Address of a specific IP
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Tinf
Tiny inflate library (inflate, gzip, zlib)
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Material About Library
Makes it easy to create beautiful about screens for your apps
Stars: ✭ 1,099 (+1762.71%)
Mutual labels:  library
Noexception
Java library for handling exceptions in concise, unified, and architecturally clean way.
Stars: ✭ 56 (-5.08%)
Mutual labels:  library
Ngx Tree Select
Angular select component with tree items
Stars: ✭ 59 (+0%)
Mutual labels:  library
Tsimulus
A tool for generating random, yet realistic, time series values
Stars: ✭ 57 (-3.39%)
Mutual labels:  timeseries
Array view
Wrapper for references to array in C++.
Stars: ✭ 58 (-1.69%)
Mutual labels:  library
Keyboardhidemanager
Codeless manager to hide keyboard by tapping on views for iOS written in Swift
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Hello Bar
👋 Greet your visitors with a hello bar
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Thrift
Apache Thrift
Stars: ✭ 8,821 (+14850.85%)
Mutual labels:  library
Adrestia
APIs & SDK for interacting with Cardano.
Stars: ✭ 56 (-5.08%)
Mutual labels:  library
React Gojs
GoJS React integration
Stars: ✭ 59 (+0%)
Mutual labels:  library
Webdriver Rust
Library implementing the wire protocol for the W3C WebDriver standard.
Stars: ✭ 56 (-5.08%)
Mutual labels:  library
Pesdk React Native Demo
React Native example for PhotoEditor SDK
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Cordova Mobile Spec
Apache Cordova mobile-spec
Stars: ✭ 57 (-3.39%)
Mutual labels:  library
Girc
💣 girc is a flexible IRC library for Go 👌
Stars: ✭ 59 (+0%)
Mutual labels:  library

Go Share

                        __
   ____ _____     _____/ /_  ____ _________
  / __ `/ __ \   / ___/ __ \/ __ `/ ___/ _ \
 / /_/ / /_/ /  (__  ) / / / /_/ / /  /  __/
 \__, /\____/  /____/_/ /_/\__,_/_/   \___/
/____/

Tasks in Queue at Trello Board

distributed under MIT License

Go Share any data among the nodes. Over HTTP or ZeroMQ.

  • GOShare eases up communication over HTTP GET param based interaction.
  • ZeroMQ REQ/REP based synchronous communication model.

it's "go get"-able

go get "github.com/abhishekkr/goshare"


Make Distributable Binary

./go-tasks.sh bin

This will create two distributable binaries ./bin/goshare_service & ./bin/goshare_daemon. Here ./bin/goshare_service works as shown in README's 'Tryout' section.

Whereas ./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)

  • start: ./bin/goshare_daemon -daemon=start
  • stop: ./bin/goshare_daemon -daemon=stop
  • status: ./bin/goshare_daemon -daemon=status

this dumps daemon's current status to /tmp/goshare_daemon.status and pid to /tmp/goshare_daemon.pid the status and pid file path can be changed with flags '-daemon-log=' & '-daemon-pid=' respectively

Tryout:

 go run zxtra/goshare_daemon.go -DBPath=/tmp/GOTSDB

By default it runs HTTP daemon at port 9999 and ZeroMQ daemon at 9797/9898, make it run on another port using following required flags

 go run zxtra/goshare_daemon.go -DBPath=/tmp/GOTSDB -port=8080 -req-port=8000 -rep-port=8001
  Dummy Clients Using It

  * go run zxtra/gohttp_client.go

  * go run zxtra/go0mq_client.go


  for custom Port: 8080 for HTTP; Port: 8000/8001 for ZeroMQ

  * go run zxtra/gohttp_client.go -port=8080

  * go run zxtra/go0mq_client.go -req-port=8000 -rep-port=8001

To utilize it "zxtra/gohttp_client.go" and "zxtra/go0mq_client.go" can be referred on how to utilize capabilities of GoShare.


Structure:

"goshare"'s methods to adapt these in your code:

  • GoShare() : it runs HTTP and ZeroMQ daemon in parallel goroutines

has optional flags customization of:

  • DBPath: path for LevelDB or other used (default: /tmp/GO.DB)
  • DBEngine: DB backend used (default: leveldb,; other options: sqlite3)
  • port: port to bind HTTP daemon (default: 9999)
  • req-port, rep-port: ports to bind ZeroMQ REQ/REP daemon (default: 9797, 9898)
  • GoShareHTTP(<levigo DB handle>, <http port as int>) : it runs HTTP daemon

  • GoShareZMQ(<levigo DB handle>, <req-port as int>, <rep-port as int>) : it runs ZMQ daemon


Now visit the the link asked by it and get the help page.

Dependency
  • go lang (obviously, the heart and soul of the app)
  • leveldb (we are using for datastore, it's awesome)
  • levigo (the go library utilized to access leveldb)
  • zeroMQ (the supercharged Sockets giving REQuest/REPly power)
  • gozmq GoLang ZeroMQ Bindings used here
  • levigoNS NameSpace KeyVal capabilities around leveldb via levigo
  • levigoTSDS TimeSeries KeyVal capabilties around leveldb via levigoNS
  • gol Set of common utility functionalities

baby-gopher

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].