{"id":20564404,"url":"https://github.com/tarantool/xk6-tarantool","last_synced_at":"2025-10-19T20:44:53.229Z","repository":{"id":57600039,"uuid":"357887714","full_name":"tarantool/xk6-tarantool","owner":"tarantool","description":"⚙️ A k6 extension for Tarantool","archived":false,"fork":false,"pushed_at":"2024-05-16T21:24:12.000Z","size":94,"stargazers_count":13,"open_issues_count":2,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T04:05:29.094Z","etag":null,"topics":["xk6"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tarantool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-14T11:53:31.000Z","updated_at":"2025-03-01T08:58:49.000Z","dependencies_parsed_at":"2024-05-16T22:31:58.650Z","dependency_job_id":"218b1f9e-2eff-4c5b-b0e2-48551bad5e2c","html_url":"https://github.com/tarantool/xk6-tarantool","commit_stats":null,"previous_names":["hackfeed/xk6-tarantool"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fxk6-tarantool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fxk6-tarantool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fxk6-tarantool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fxk6-tarantool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarantool","download_url":"https://codeload.github.com/tarantool/xk6-tarantool/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904638,"owners_count":21180835,"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","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":["xk6"],"created_at":"2024-11-16T04:26:21.121Z","updated_at":"2025-10-19T20:44:48.175Z","avatar_url":"https://github.com/tarantool.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xk6-tarantool\n\nThis is a [k6](https://github.com/loadimpact/k6) extension using the [xk6](https://github.com/k6io/xk6) system.\n\n| :exclamation: This is a proof of concept, isn't supported by the k6 team, and may break in the future. USE AT YOUR OWN RISK! |\n|------|\n\n## Build\n\nTo build a `k6` binary with this extension, first ensure you have the prerequisites:\n\n- [Go toolchain](https://go101.org/article/go-toolchain.html)\n- Git\n\nThen:\n\n1. Clone `xk6`:\n  ```shell\n  git clone https://github.com/k6io/xk6.git\n  cd xk6\n  ```\n\n2. Build the binary:\n  ```shell\n  CGO_ENABLED=1 go run ./cmd/xk6/main.go build master \\\n    --with github.com/tarantool/xk6-tarantool\n  ```\n\n## Example\n\nMake sure you configured a space in Tarantool console first:\n\n```lua\nbox.schema.space.create(\"cars\")\nbox.space.cars:format({\n    {name = 'id', type = 'unsigned'},\n    {name = 'model', type = 'string'}\n})\nbox.space.cars:create_index('pk', {\n    type = 'hash',\n    parts = {'id'}\n})\n```\n\nTest script:\n\n```javascript\nimport tarantool from \"k6/x/tarantool\";\n\nconst conn = tarantool.connect(\"localhost:3301\");\n\nexport const setup = () =\u003e {\n  tarantool.insert(conn, \"cars\", [1, \"cadillac\"]);\n};\n\nexport default () =\u003e {\n  console.log(tarantool.call(conn, \"box.space.cars:select\", [1]));\n};\n\nexport const teardown = () =\u003e {\n  tarantool.delete(conn, \"cars\", \"pk\", [1]);\n};\n```\n\nResult output:\n\n```\n$ ./k6 run test.js \n\n          /\\      |‾‾| /‾‾/   /‾‾/   \n     /\\  /  \\     |  |/  /   /  /    \n    /  \\/    \\    |     (   /   ‾‾\\  \n   /          \\   |  |\\  \\ |  (‾)  | \n  / __________ \\  |__| \\__\\ \\_____/ .io\n\n  execution: local\n     script: test.js\n     output: -\n\n  scenarios: (100.00%) 1 scenario, 1 max VUs, 10m30s max duration (incl. graceful stop):\n           * default: 1 iterations for each of 1 VUs (maxDuration: 10m0s, gracefulStop: 30s)\n\nINFO[0000] \u003c3 OK [[1 cadillac]]\u003e                         source=console\n\nrunning (00m00.0s), 0/1 VUs, 1 complete and 0 interrupted iterations\ndefault ✓ [======================================] 1 VUs  00m00.0s/10m0s  1/1 iters, 1 per VU\n\n     █ setup\n\n     █ teardown\n\n     data_received........: 0 B 0 B/s\n     data_sent............: 0 B 0 B/s\n     iteration_duration...: avg=1.46ms min=1.39ms med=1.48ms max=1.51ms p(90)=1.5ms p(95)=1.51ms\n     iterations...........: 1   62.668421/s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fxk6-tarantool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarantool%2Fxk6-tarantool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fxk6-tarantool/lists"}