From 1beeb3532561c2375173b09afe99ef12ee58c3f3 Mon Sep 17 00:00:00 2001 From: Vaibhav Rabber Date: Wed, 18 Dec 2024 21:05:24 +0530 Subject: [PATCH] chore: Add `README.md` (#83) Resolves: #72 --------- Signed-off-by: Vaibhav Rabber --- README.md | 117 +++++++++++++++++++++++++++++++++++++++++++- assets/s2-black.png | Bin 0 -> 19466 bytes assets/s2-white.png | Bin 0 -> 4288 bytes 3 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 assets/s2-black.png create mode 100644 assets/s2-white.png diff --git a/README.md b/README.md index ed18492..3589f90 100644 --- a/README.md +++ b/README.md @@ -1 +1,116 @@ -# streamstore-cli +
+

+ + + + + + + + +

+ +

S2 CLI

+ +

+ + + + + + + + +

+
+ +Command Line Tool to interact with the +[S2 API](https://buf.build/streamstore/s2/docs/main:s2.v1alpha). + +## Getting started + +1. [Install](#installation) the S2 CLI using your preferred method. + +1. Generate an authentication token by logging onto the web console at + [s2.dev](https://s2.dev/dashboard) and set the token in CLI config: + ```bash + s2 config set --auth-token + ``` + +1. You're ready to run S2 commands! + ```bash + s2 list-basins + ``` + +Head over to [S2 Docs](https://s2.dev/docs/quickstart) for a quick dive into +using the CLI. + +## Commands and reference + +You can add the `--help` flag to any command for CLI reference. Run `s2 --help` +to view all the supported commands and options. + +> [!TIP] +> The `--help` command displays a verbose help message whereas the `-h` displays +> the same message in brief. + +## Installation + +### Using Homebrew + +This method works on macOS and Linux distributions with +[Homebrew](https://brew.sh) installed. + +```bash +brew install s2-streamstore/s2/s2 +``` + +### Using Cargo + +This method works on any system with [Rust](https://www.rust-lang.org/) +and [Cargo](https://doc.rust-lang.org/cargo/) installed. + +```bash +cargo install streamstore-cli +``` + +### From Release Binaries + +Check out the [S2 CLI Releases](https://github.com/s2-streamstore/s2-cli/releases) +for prebuilt binaries for many different architectures and operating systems. + +Linux and macOS users can download the release binary using: + +```bash +curl -fsSL s2.dev/install.sh | bash +``` + +To install a specific version, you can set the `VERSION` environment variable. + +```bash +export VERSION=0.5.2 +curl -fsSL s2.dev/install.sh | bash +``` + +## Feedback + +We use [Github Issues](https://github.com/s2-streamstore/s2-cli/issues) to +track feature requests and issues with the SDK. If you wish to provide feedback, +report a bug or request a feature, feel free to open a Github issue. + +### Contributing + +Developers are welcome to submit Pull Requests on the repository. If there is +no tracking issue for the bug or feature request corresponding to the PR, we +encourage you to open one for discussion before submitting the PR. + +## Reach out to us + +Join our [Discord](https://discord.gg/vTCs7kMkAf) server. We would love to hear +from you. + +You can also email us at [hi@s2.dev](mailto:hi@s2.dev). + +## License + +This project is licensed under the [Apache-2.0 License](./LICENSE). diff --git a/assets/s2-black.png b/assets/s2-black.png new file mode 100644 index 0000000000000000000000000000000000000000..322d1b5dce6f0429b3ff5f0716637bbedfaf1f6c GIT binary patch literal 19466 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 E0Oc`%X#fBK literal 0 HcmV?d00001 diff --git a/assets/s2-white.png b/assets/s2-white.png new file mode 100644 index 0000000000000000000000000000000000000000..438037e2b404120a72e2122a542b29ce0e461669 GIT binary patch literal 4288 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 literal 0 HcmV?d00001