{"id":38251864,"url":"https://github.com/getoptimum/mump2p-cli","last_synced_at":"2026-01-17T01:28:11.386Z","repository":{"id":289831240,"uuid":"963437703","full_name":"getoptimum/mump2p-cli","owner":"getoptimum","description":"mump2p is the command-line interface for interacting with mump2p — a high-performance RLNC-enhanced pubsub protocol.","archived":false,"fork":false,"pushed_at":"2025-12-29T05:39:23.000Z","size":1337,"stargazers_count":2,"open_issues_count":3,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-01T01:23:58.746Z","etag":null,"topics":["cli","golang","grpc","p2p","pubsub","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getoptimum.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-04-09T17:21:45.000Z","updated_at":"2025-12-18T11:50:25.000Z","dependencies_parsed_at":"2025-08-01T17:30:31.559Z","dependency_job_id":"b7df62bc-b40c-4763-af0a-c06f0df30351","html_url":"https://github.com/getoptimum/mump2p-cli","commit_stats":null,"previous_names":["getoptimum/optcli","getoptimum/mump2p-cli"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/getoptimum/mump2p-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getoptimum%2Fmump2p-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getoptimum%2Fmump2p-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getoptimum%2Fmump2p-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getoptimum%2Fmump2p-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getoptimum","download_url":"https://codeload.github.com/getoptimum/mump2p-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getoptimum%2Fmump2p-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28491520,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cli","golang","grpc","p2p","pubsub","websocket"],"created_at":"2026-01-17T01:28:11.278Z","updated_at":"2026-01-17T01:28:11.359Z","avatar_url":"https://github.com/getoptimum.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mump2p CLI\n\n`mump2p-cli` is the command-line interface for interacting with [Optimum network](https://github.com/getoptimum/optimum-p2p) — a high-performance RLNC-enhanced pubsub network.\n\nIt supports authenticated publishing, subscribing, rate-limited usage tracking, and JWT session management.\n\n---\n\n## Features\n\n- [x] Publish messages to topics\n- [x] Subscribe to real-time message streams\n- [x] List active topics\n- [x] gRPC support for high-performance streaming\n- [x] JWT-based login/logout and token refresh\n- [x] Local rate-limiting (publish count, quota, max size)\n- [x] Usage statistics reporting\n- [x] Persist messages to local storage\n- [x] Forward messages to webhook endpoints (POST method) with flexible JSON template formatting\n- [x] Health monitoring and system metrics\n- [x] Debug mode with detailed timing and proxy information\n- [x] Development mode with `--disable-auth` flag for testing\n- [x] Multiple output formats (table, JSON, YAML) for automation and scripting\n- [x] Interactive tracer dashboard for real-time metrics visualization\n  \n---\n\n## Quick Start\n\n### 1. Installation\n\n**Quick Install (Recommended):**\nThe install script automatically detects your OS (Linux/macOS), downloads the latest release binary, makes it executable, and verifies the installation.\n\n```sh\ncurl -sSL https://raw.githubusercontent.com/getoptimum/mump2p-cli/main/install.sh | bash\n```\n\n**Expected Output:**\n![CLI Installation Output](./docs/img/cli_command.png)\n\n**Manual Installation:**\nDownload from [releases](https://github.com/getoptimum/mump2p-cli/releases/latest) and make executable.\n\n### 2. Authentication\n\n```sh\n./mump2p login\n./mump2p whoami  # Check your session\n```\n\n**Development/Testing Mode:**\n```sh\n# Skip authentication for testing (requires --client-id and --service-url)\n./mump2p --disable-auth --client-id=\"my-test-client\" publish --topic=test --message=\"Hello\" --service-url=\"http://34.146.222.111:8080\"\n./mump2p --disable-auth --client-id=\"my-test-client\" subscribe --topic=test --service-url=\"http://34.146.222.111:8080\"\n./mump2p --disable-auth --client-id=\"my-test-client\" list-topics --service-url=\"http://34.146.222.111:8080\"\n```\n\n### 3. Basic Usage\n\n```sh\n# Subscribe to a topic (WebSocket)\n./mump2p subscribe --topic=test-topic\n\n# Subscribe via gRPC stream\n./mump2p subscribe --topic=test-topic --grpc\n\n# Publish a message (HTTP)\n./mump2p publish --topic=test-topic --message='Hello World'\n\n# Publish via gRPC\n./mump2p publish --topic=test-topic --message='Hello World' --grpc\n\n# List your active topics\n./mump2p list-topics\n\n# Output formats - JSON/YAML for automation and scripting\n./mump2p list-topics --output=json\n./mump2p whoami --output=yaml\n\n# Debug mode - detailed timing and proxy information\n./mump2p --debug publish --topic=test-topic --message='Hello World'\n./mump2p --debug subscribe --topic=test-topic\n\n# Tracer dashboard - real-time metrics visualization\n./mump2p tracer dashboard\n```\n\n### Transport Protocols\n\n- **HTTP/WebSocket (Default)**: Traditional REST API with WebSocket streaming\n- **gRPC**: High-performance binary protocol with streaming support\n- Use `--grpc` flag for both publishing and subscribing\n\n---\n\n## 📚 Documentation\n\n- **[Complete User Guide](./docs/guide.md)** - Detailed setup, authentication, and usage instructions\n\n---\n\n## Version Compatibility\n\n**Important:** Always use the latest version binaries (currently **v0.0.1-rc8**) from the releases page. \n\n**Current Release:**\n- **v0.0.1-rc8** is the latest release\n- **v0.0.1-rc5** and earlier versions are deprecated\n\n---\n\n## FAQ - Common Issues \u0026 Troubleshooting\n\n### **1. Available Service URLs**\n\nBy default, the CLI uses the first proxy in the list below. You can override this using the `--service-url` flag or by rebuilding with a different `SERVICE_URL`.\n\n| **Proxy Address** | **Location** | **URL** | **Notes** |\n|---------------------|--------------|---------|-----------|\n| `34.146.222.111` | Tokyo | `http://34.146.222.111:8080` | **Default** |\n| `35.221.118.95` | Tokyo | `http://35.221.118.95:8080` | |\n| `34.142.205.26` | Singapore | `http://34.142.205.26:8080` | |\n\n\u003e **Note:** More geo-locations coming soon!\n\n**Example: Using a different proxy:**\n\n```sh\n./mump2p-mac publish --topic=example-topic --message='Hello' --service-url=\"http://35.221.118.95:8080\"\n./mump2p-mac subscribe --topic=example-topic --service-url=\"http://34.142.205.26:8080\"\n```\n\n### **2. Authentication \u0026 Account Issues**\n\n#### **Error: Connection refused**\n```\nError: HTTP publish failed: dial tcp [::1]:8080: connect: connection refused\n```\n\n**Causes:**\n- Proxy not running\n- Wrong port or hostname\n- Firewall blocking connection\n- Service not listening on specified port\n\n**Solutions:**\n- Start proxy service\n- Verify correct hostname and port\n- Check `docker ps` for running containers\n- Use correct service URL\n- Try a different proxy from the table above\n\n### **3. Rate Limiting \u0026 Usage Issues**\n\n#### **Error: Rate limit exceeded**\n```\nError: per-hour limit reached (100/hour)\nError: daily quota exceeded\nError: message size exceeds limit\n```\n\n**Causes:**\n- Publishing too frequently\n- Message too large for tier\n- Daily quota exhausted\n- Per-second limit hit\n\n**Solutions:**\n- Wait for rate limit reset\n- Use smaller messages\n- Check usage: `./mump2p usage`\n- Contact admin for higher limits\n- Spread out publish operations\n\n#### **Error: Token expired**\n```\nError: token has expired, please login again\n```\n\n**Causes:**\n- JWT token expired (24 hours)\n- Clock skew\n- Token corrupted\n\n**Solutions:**\n- Refresh token: `./mump2p refresh`\n- Login again: `./mump2p login`\n- Check system time\n\n\n\n### **4. CLI Usage \u0026 Syntax Issues**\n\n#### **Error: Missing required flags**\n```\nError: required flag(s) \"topic\" not set\n```\n\n**Causes:**\n- Forgetting required command line arguments\n- Typos in flag names\n\n**Solutions:**\n- Use `--help` to see required flags\n- Include all required arguments\n- Check flag spelling and syntax\n\n### **5. Development Mode (`--disable-auth`)**\n\nFor development and testing, you can bypass authentication:\n\n```sh\n# Requires --client-id and --service-url flags\n./mump2p --disable-auth --client-id=\"test-client\" \\\n  publish --topic=test --message=\"Hello\" \\\n  --service-url=\"http://34.146.222.111:8080\"\n```\n\n\u003e **Note:** This mode is for testing only. No rate limits enforced. See [guide](./docs/guide.md) for full details.\n\n### **6. Debug Mode \u0026 Performance Analysis**\n\nThe `--debug` flag provides detailed timing and proxy information for troubleshooting:\n\n```sh\n# Enable debug mode for operations\n./mump2p --debug publish --topic=test-topic --message='Hello World'\n./mump2p --debug subscribe --topic=test-topic\n\n# Combine with --disable-auth for testing\n./mump2p --disable-auth --client-id=\"test\" --debug \\\n  publish --topic=test --message=\"Hello\" \\\n  --service-url=\"http://34.146.222.111:8080\"\n```\n\nFor comprehensive debug mode usage, performance analysis, and blast testing examples, see the [Complete User Guide](./docs/guide.md#debug-mode).\n\n---\n\n**Pro Tips for First-Time Users:**\n- Always check `docker ps` and `docker logs` for container status\n- Use `--help` flag liberally to understand command options\n- Test authentication first with `whoami` before trying other operations\n- Start with simple publish/subscribe before advanced features\n- Keep proxy and CLI logs visible during troubleshooting\n- Check `usage` command regularly to monitor limits\n- For webhook integration and advanced features, see the [Complete User Guide](./docs/guide.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetoptimum%2Fmump2p-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetoptimum%2Fmump2p-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetoptimum%2Fmump2p-cli/lists"}