Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iggy-rs/iggy-go-client
Official Go client SDK for Iggy.rs message streaming.
https://github.com/iggy-rs/iggy-go-client
go golang iggy sdk
Last synced: about 2 months ago
JSON representation
Official Go client SDK for Iggy.rs message streaming.
- Host: GitHub
- URL: https://github.com/iggy-rs/iggy-go-client
- Owner: iggy-rs
- License: mit
- Created: 2023-08-08T19:42:04.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-15T17:17:38.000Z (12 months ago)
- Last Synced: 2024-01-15T22:20:08.954Z (12 months ago)
- Topics: go, golang, iggy, sdk
- Language: Go
- Homepage:
- Size: 118 KB
- Stars: 7
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![Go][Golang]][Golang-url]
iggy-go
SDK for iggy written using go language
View Samples
·
Report Bug
·
Request Feature
·
iggy documentation
## About The Project
`iggy-go` is a golang SDK for iggy - persistent message streaming platform written in Rust.
## Getting Started
This is an example of how you may give instructions on setting up your project locally.
To get a local copy up and running follow these simple example steps.### Prerequisites
In order to use this SDK you need to install golang on your environment. Here's a link to official go documentation explaining how you can do that!
### Installation
1. Clone the repo
```sh
git clone https://github.com/iggy-rs/iggy-go-client.git
```
2. Verify that the solution builds correctly
```sh
cd iggy-go
go build
```## Usage (OBSOLETE; will be updated soon)
If you want to use this sdk as a CLI tool, you can do that by following these steps:
1. Clone iggy repo and run it in background
```sh
git clone https://github.com/iggy-rs/iggy.git
cd iggy
cargo r --bin iggy-server -r
```
1. Open new terminal instance and enter `iggy-go` root folder
```sh
cd iggy-go
```
2. Run your command
```sh
go run ./cli
```You can run `help` command if you would like to see available commands:
```sh
$ go run ./cli helpUsage:
getstream -url -port -streamId
createstream -url -port -streamId -name
deletestream -url -port -streamId
gettopic -url -port -streamId -topicId
createtopic -url -port -streamId -topicId -name -partitionsCount
deletetopic -url -port -streamId -topicId```
Some parameters don't have default values so you have to define them manually:
```sh
$ go run ./cli createstreamError: Name flag is required.
-n string
Stream name
-name string
Stream name
-port string
Iggy server port (default "8090")
-s int
Alias for Stream Id (default 1)
-sid int
Alias for Stream Id (default 1)
-streamid int
Stream Id (default 1)
-url string
Iggy server url (default "127.0.0.1")
```
This is how `createstream` command is called correctly```sh
$ go run ./cli createstream -s 1 -n stream_name
```
## Roadmap
- [x] Basic CLI tool (already obsolete)
- [x] Samples
- [ ] Rewrite the CLI tool using CLI frameworks (like Cobra/Viper)
- [ ] Implementing all iggy features in the SDK
- [x] TCP
- [ ] HTTP (can be picked up at any moment)
- [ ] QUIC
- [ ] Implementing benchmarks
- [ ] Implementing optional logging
- [ ] Implementing tests
- [ ] Unit tests for binary serialization
- [ ] BDD integration tests
- [ ] Improve BDD tests assertions, so they can detect breaking changes in iggy-server
- [X] Human friendly error handling
- [ ] Documentation
- [ ] GitHub actions CI/CD
- [ ] Publishing to official golang packages repositorySee the [open issues](https://github.com/iggy-rs/iggy-go-client/issues) for a full list of proposed features (and known issues).
## Contributing
If you believe that you can improve this SDK feel free to contribute. Here's how you can do it:
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## Acknowledgments
* [iggy-rs repository](https://github.com/iggy-rs/iggy)
* [iggy-rs documentation](https://docs.iggy.rs/)[contributors-shield]: https://img.shields.io/github/contributors/iggy-rs/iggy-go-client.svg?style=for-the-badge
[contributors-url]: https://github.com/iggy-rs/iggy-go-client/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/iggy-rs/iggy-go-client.svg?style=for-the-badge
[forks-url]: https://github.com/iggy-rs/iggy-go-client/network/members
[stars-shield]: https://img.shields.io/github/stars/iggy-rs/iggy-go-client.svg?style=for-the-badge
[stars-url]: https://github.com/iggy-rs/iggy-go-client/stargazers
[issues-shield]: https://img.shields.io/github/issues/iggy-rs/iggy-go-client.svg?style=for-the-badge
[issues-url]: https://github.com/iggy-rs/iggy-go-client/issues
[license-shield]: https://img.shields.io/github/license/iggy-rs/iggy-go-client.svg?style=for-the-badge
[license-url]: https://github.com/iggy-rs/iggy-go-client/blob/master/LICENSE.txt
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[Golang-url]: https://go.dev/
[Golang]: https://img.shields.io/badge/Go-00ADD8?style=for-the-badge&logo=go&logoColor=white
[Iggy-docs-url]: https://docs.iggy.rs/
[Iggy-repo-url]: https://github.com/iggy-rs/iggy
[Iggy-dotnet-repo-url]: https://github.com/iggy-rs/iggy-dotnet-client