{"id":18616729,"url":"https://github.com/sile/jlot","last_synced_at":"2026-02-17T08:02:57.900Z","repository":{"id":255541391,"uuid":"852209624","full_name":"sile/jlot","owner":"sile","description":"Command-line tool for JSON-RPC 2.0 over JSON Lines over TCP.","archived":false,"fork":false,"pushed_at":"2026-02-07T15:46:06.000Z","size":222,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-08T00:12:27.021Z","etag":null,"topics":["command-line-tool","json-rpc","jsonl","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sile.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-04T12:20:16.000Z","updated_at":"2026-02-07T15:46:09.000Z","dependencies_parsed_at":"2024-12-02T13:39:13.087Z","dependency_job_id":"dd093885-d256-4f1a-9023-6636077a4c8e","html_url":"https://github.com/sile/jlot","commit_stats":null,"previous_names":["sile/jlot"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/sile/jlot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Fjlot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Fjlot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Fjlot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Fjlot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sile","download_url":"https://codeload.github.com/sile/jlot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sile%2Fjlot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29537254,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T05:00:25.817Z","status":"ssl_error","status_checked_at":"2026-02-17T04:57:16.126Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["command-line-tool","json-rpc","jsonl","rust"],"created_at":"2024-11-07T03:37:44.347Z","updated_at":"2026-02-17T08:02:57.885Z","avatar_url":"https://github.com/sile.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"jlot\n====\n\n[![jlot](https://img.shields.io/crates/v/jlot.svg)](https://crates.io/crates/jlot)\n[![Documentation](https://docs.rs/jlot/badge.svg)](https://docs.rs/jlot)\n[![Actions Status](https://github.com/sile/jlot/workflows/CI/badge.svg)](https://github.com/sile/jlot/actions)\n![License](https://img.shields.io/crates/l/jlot)\n\nThis is a command-line tool for [JSON-RPC 2.0] over [JSON Lines] over TCP.\n\n[JSON-RPC 2.0]: https://www.jsonrpc.org/specification\n[JSON Lines]: https://jsonlines.org/\n\n```console\n$ cargo install jlot\n\n$ jlot -h\nCommand-line tool for JSON-RPC 2.0 over JSON Lines over TCP\n\nUsage: jlot [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  req         Generate a JSON-RPC request object JSON\n  call        Read JSON-RPC requests from standard input and execute the RPC calls\n  bench       Run JSON-RPC benchmark\n  stats       Calculate statistics from JSON objects outputted by the bench command\n  echo-server Run a JSON-RPC echo server (for development or testing purposes)\n\nOptions:\n      --version Print version\n  -h, --help    Print help ('--help' for full help, '-h' for summary)\n```\n\nExamples\n--------\n\n### Basic RPC call\n\nStart an echo server in a terminal (\":9000\" is shorthand for \"127.0.0.1:9000\"):\n```console\n$ jlot echo-server :9000\n```\n\nExecute an RPC call in another terminal:\n```console\n$ jlot req hello --params '[\"world\"]' | jlot call :9000 | jq .\n{\n  \"jsonrpc\": \"2.0\",\n  \"result\": {\n    \"id\": 2,\n    \"jsonrpc\": \"2.0\",\n    \"method\": \"hello\",\n    \"params\": [\n      \"world\"\n    ]\n  },\n  \"id\": 2\n}\n```\n\n### Benchmarking\n\nStart an echo server in a terminal:\n```console\n$ jlot echo-server :9000\n```\n\nExecute 100,000 RPC calls in benchmarking mode and gather the statistics:\n```console\n$ jlot req put --count 100000 | \\\n    jlot bench :9000 --concurrency 10 | \\\n    jlot stats\n{\n  \"elapsed_seconds\": 0.356318,\n  \"requests_per_second\": 280648,\n  \"avg_latency_seconds\": 0.000034634,\n  \"detail\": {\n    \"count\": { \"success\": 100000, \"error\": 0 },\n    \"size\": { \"request_avg_bytes\": 43, \"response_avg_bytes\": 81 },\n    \"latency\": { \"min\": 0.000013, \"p25\": 0.000024, \"p50\": 0.000028, \"p75\": 0.000035, \"max\": 0.038994 },\n    \"concurrency\": { \"max\": 10 }\n  }\n}\n```\n\nUDP\n---\n\nUDP is supported for simple testing with one-packet request/response.\n\n```console\n$ jlot echo-server --udp :9001\n$ jlot req hello --params '[\"world\"]' | jlot call --udp :9001\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsile%2Fjlot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsile%2Fjlot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsile%2Fjlot/lists"}