{"id":26267485,"url":"https://github.com/oslabs-beta/tropicrpc","last_synced_at":"2025-09-06T01:43:20.581Z","repository":{"id":98685111,"uuid":"278730503","full_name":"oslabs-beta/tropicRPC","owner":"oslabs-beta","description":"A VS Code extension that provides gRPC API endpoint testing.","archived":false,"fork":false,"pushed_at":"2020-08-06T22:04:00.000Z","size":4019,"stargazers_count":152,"open_issues_count":4,"forks_count":5,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-09-06T01:43:19.888Z","etag":null,"topics":["bidirectional-streaming","client-streaming","grpc","grpc-client","grpc-node","grpc-requests","rpc-framework","server-streaming","vscode-extension"],"latest_commit_sha":null,"homepage":"http://tropicRPC.io","language":"TypeScript","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/oslabs-beta.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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},"funding":{"github":"open-source-labs","custom":["https://donorbox.org/donations-to-oslabs-inc"]}},"created_at":"2020-07-10T20:48:47.000Z","updated_at":"2025-02-12T00:11:21.000Z","dependencies_parsed_at":"2023-03-13T15:56:58.941Z","dependency_job_id":null,"html_url":"https://github.com/oslabs-beta/tropicRPC","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oslabs-beta/tropicRPC","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2FtropicRPC","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2FtropicRPC/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2FtropicRPC/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2FtropicRPC/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oslabs-beta","download_url":"https://codeload.github.com/oslabs-beta/tropicRPC/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oslabs-beta%2FtropicRPC/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273847147,"owners_count":25178635,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bidirectional-streaming","client-streaming","grpc","grpc-client","grpc-node","grpc-requests","rpc-framework","server-streaming","vscode-extension"],"created_at":"2025-03-14T04:17:01.468Z","updated_at":"2025-09-06T01:43:20.567Z","avatar_url":"https://github.com/oslabs-beta.png","language":"TypeScript","funding_links":["https://github.com/sponsors/open-source-labs","https://donorbox.org/donations-to-oslabs-inc"],"categories":[],"sub_categories":[],"readme":"\u003ccenter\u003e\n\u003cimg src=\"./DOCUMENTATION/images/tropicRPC.png\" \u003e\n\u003c/center\u003e\n\n## What is tropicRPC? :pineapple:\n\nA Visual Studio Code extension that provides gRPC Remote Procedure Call (gRPC) API endpoint testing.\n\n## Core Features :zap:\n\n- Starts your gRPC server\n- Generates a configuration file within the open VS Code project to be populated with the user's server and request information\n- On save, tropicRPC will make a remote procedure call (RPC) from an auto-generated client\n- tropicRPC supports the following RPC types:\n  - unary\n  - client-streaming\n  - server-streaming\n  - bidirectional streaming\n- The server response is displayed in the VS Code tropicRPC output channel\n\n## Getting Started\n\n### **Installation**\n\ntropicRPC can be installed from the VS Code Extensions Marketplace [here](https://marketplace.visualstudio.com/items?itemName=tropicRPC.tropicrpc).\n\n### **Setting up the config file**\n\nOpen the command palette in VS Code (Cmd/Ctrl + Shift + P) and select `tropicRPC: Create Config File`. A default config file will be generated. Follow the instructions in the config object to update the entry, portNumber, ipAddress, protoFile, and protoPackage.\n\n\u003ccenter\u003e\n\u003cimg width=\"800px\" src=\"./DOCUMENTATION/images/update_config.gif\" alt=\"config demo gif\" /\u003e\n\u003c/center\u003e\n\n### **tropicRPC's mock API**\n\nA mock gRPC API was built for testing tropicRPC during development. This mock API is open-sourced for users to test the tropicRPC extension. It's available in this [GitHub repository](https://github.com/tropicRPC/Mock-gRPC-API).\n\n## Write Your First tropicRPC gRPC Request\n\n1. Search for tropicRPC using the VS Code Command Palette (Cmd/Ctrl + Shift + P) and run the `tropicRPC: Activate` command.\n\n2. In the 'request' object, set the values of the 'service', 'method', and 'message' properties appropriately.\n\n3. On every config file save, tropicRPC will send the request(s) and display your server results in the output channel.\n   - For unary and server-streaming RPCs, add fields as properties on request object\n   - For client-streaming and bidirectional RPCs, add each stream as an object nested under the request object\n\n```javascript\n// add config details here\nconst config = {\n  // OPTIONAL: change './server/index.js' to the relative path from the root directory to the file that starts your server\n  // or '' if you do not need tropicRPC to start your server\n  entry: './server/index.js',\n\n  // OPTIONAL: change 3000 to the port number on which your server runs\n  portNumber: 3000,\n\n  // OPTIONAL: populate '' with the IP address of your server (exclude portNumber)\n  ipAddress: '',\n\n  // change './demo.proto' to the relative path from the root directory to your proto file\n  protoFile: 'src/proto/demo.proto',\n\n  // change 'protoPackage' to your proto package's name\n  protoPackage: 'protoPackage',\n};\n\n// after activating tropicRPC extension, add request(s) here and save this file to execute\nconst requests = {\n  // customize your request values below\n  request1: {\n    service: 'serviceName',\n    method: 'unaryMethod',\n    message: {\n      field1: 0,\n      field2: 'Hello World',\n    },\n  },\n  Request2: {\n    service: 'serviceName',\n    method: 'clientStreamingMethod',\n    message: {\n      0: {\n        field1: 0,\n        field2: 'Hello World',\n      },\n      1: {\n        field1: 1,\n        field2: 'Bye World',\n      },\n    },\n  },\n  // add additional request objects below, as necessary, using the above format\n};\n```\n\n\u003ccenter\u003e\n\u003cimg width=\"800px\" src=\"./DOCUMENTATION/images/add_request.gif\" alt=\"request demo gif\" /\u003e\n\u003c/center\u003e\n\n## Ending Your tropicRPC Session\n\nWhen you are ready to end your session, search for tropicRPC using the VS Code Command Palette (Cmd/Ctrl + Shift + P) and run the `tropicRPC: Deactivate` command. Deactivating the extension will stop your server.\n\n## Troubleshooting: Changing Your Server Path\n\nAfter initially setting your server path, any additional updates to the path will require the extension to be deactivated and then reactivated for changes to take effect.\n\n## Future Features :tropical_drink:\n\n- [ ] Support for additional metadata in request\n- [ ] Predictive text for services and methods\n- [ ] Schema / service method preview via hovering\n- [ ] Auto-identification of gRPC requests\n- [ ] Historical log of all requests and responses\n\n## Built By :yellow_heart:\n\n- [Ed Chow](https://github.com/edkchow)\n- [Joyce Lo](https://github.com/joycelo)\n- [Roseanne Damasco](https://github.com/rosedamasco)\n- [Shahrukh Khan](https://github.com/ShahruKhanHub)\n- [Steve Canavan](https://github.com/stevencanavan)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foslabs-beta%2Ftropicrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foslabs-beta%2Ftropicrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foslabs-beta%2Ftropicrpc/lists"}