#testing #kurtosis

kurtosis-rust-lib

The Rust bindings library for the Kurtosis testing framework

29 stable releases

1.23.0 May 3, 2021
1.22.0 Apr 21, 2021
1.17.0 Mar 17, 2021
1.10.5 Feb 26, 2021

#100 in #testing

Download history 96/week @ 2021-04-13 58/week @ 2021-04-20 14/week @ 2021-04-27 39/week @ 2021-05-04 3/week @ 2021-05-11 31/week @ 2021-05-18 1/week @ 2021-05-25 2/week @ 2021-06-01 33/week @ 2021-06-08 2/week @ 2021-06-15 2/week @ 2021-06-22 3/week @ 2021-06-29 4/week @ 2021-07-06 2/week @ 2021-07-13 33/week @ 2021-07-20 62/week @ 2021-07-27

253 downloads per month

Custom license

110KB
2K SLoC

Kurtosis Libs

This repo contains:

  1. Libraries in various languages for interacting with Kurtosis Core, which are used to write testsuites
  2. Example implementations of testsuites in each langauge
  3. Infrastructure for bootstrapping a new testsuite, that you can use to create your own customized testsuite

Testsuite Quickstart

Prerequisites:

Quickstart steps:

  1. Clone this repo's master branch: git clone --single-branch --branch master git@github.com:kurtosis-tech/kurtosis-libs.git
  2. View the supported languages and choose the language you'd like your testsuite in
  3. Run bootstrap/bootstrap.sh and follow the helptext instructions to fill in the script arguments and bootstrap your repo
  4. If you see error messages after running your new testsuite, check out the guide for debugging failed tests which contains solutions to common issues. If this still doesn't resolve your issue, feel free to ask for help in the Kurtosis Discord server
  5. If all tests are passing, you can proceed to customizing your testsuite.

Developing On This Repo

Cutting New Releases

Run scripts/release.sh

Regenerating Protobuf Bindings

Prerequisites:

  • protoc installed (can be installed on Mac with brew install protobuf)
  • The Golang extension to protoc installed (can be installed on Mac with brew install protoc-gen-go)
  • The Golang gRPC extension to protoc installed (can be installed on Mac with brew install protoc-gen-go-grpc)
  • rust-protobuf-binding-generator installed

NOTE: One day we want to push all the protobuf binding into Docker, so that the output doesn't depend on the developer's machine; see this issue for more details

Each library needs to talk with Kurtosis Core, and the Kurtosis Core API is defined via Protobuf. Rather than storing the Protobufs in Git submodules (which add significant complexity), the .proto files are simply copied from the relevant version of Kurtosis Core. In the future, we can move to a more productized solution.

To regenerate the bindings corresponding to the Protobuf files, use the scripts/regenerate-protobuf-output.sh script.

Dependencies

~6.5MB
~117K SLoC