{"id":18559081,"url":"https://github.com/linux-china/trpc-spring-boot-starter","last_synced_at":"2025-07-24T13:38:57.587Z","repository":{"id":65509669,"uuid":"587556391","full_name":"linux-china/trpc-spring-boot-starter","owner":"linux-china","description":"Spring Boot Starter for tRPC","archived":false,"fork":false,"pushed_at":"2023-03-15T01:44:17.000Z","size":23,"stargazers_count":12,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-15T02:51:19.563Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linux-china.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2023-01-11T02:50:04.000Z","updated_at":"2025-03-10T11:11:13.000Z","dependencies_parsed_at":"2024-11-06T21:45:06.030Z","dependency_job_id":"4e7ae7dd-4aa4-4d7c-a2f9-8cbed18883e8","html_url":"https://github.com/linux-china/trpc-spring-boot-starter","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/linux-china/trpc-spring-boot-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Ftrpc-spring-boot-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Ftrpc-spring-boot-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Ftrpc-spring-boot-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Ftrpc-spring-boot-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linux-china","download_url":"https://codeload.github.com/linux-china/trpc-spring-boot-starter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linux-china%2Ftrpc-spring-boot-starter/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265860024,"owners_count":23840089,"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":[],"created_at":"2024-11-06T21:41:59.939Z","updated_at":"2025-07-24T13:38:57.542Z","avatar_url":"https://github.com/linux-china.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"Spring Boot Starter tRPC\n=============================================\n\nSpring Boot starter for [tRPC](https://trpc.io/), and compatible with webmvc/webflux of Spring Boot 2.x/3.0.\n\n# Get Started\n\n* Add dependency in your pom.xml\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.mvnsearch\u003c/groupId\u003e\n    \u003cartifactId\u003etrpc-spring-boot-starter\u003c/artifactId\u003e\n    \u003cversion\u003e0.1.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n* Write controller for tRPC query/mutate\n\n```java\n\nimport org.mvnsearch.spring.boot.trpc.TrpcInput;\nimport org.mvnsearch.spring.boot.trpc.TrpcMutate;\nimport org.mvnsearch.spring.boot.trpc.TrpcQuery;\nimport org.mvnsearch.spring.boot.trpc.TrpcResponse;\nimport org.springframework.stereotype.Controller;\n\nimport java.util.UUID;\n\n@Controller\npublic class TrpcHelloController {\n    record Hello(String name) {\n    }\n\n    @TrpcQuery(\"/greeting.hello\")\n    public TrpcResponse\u003cString\u003e hello(@TrpcInput Hello hello) {\n        return TrpcResponse.of(\"Hello \" + hello.name);\n    }\n\n    record Poster(String id, String title, String text) {\n    }\n\n    @TrpcMutate(\"/poster.createPost\")\n    public TrpcResponse\u003cPoster\u003e createPost(@TrpcInput Poster poster) {\n        return TrpcResponse.of(new Poster(UUID.randomUUID().toString(), poster.title, poster.text));\n    }\n}\n```\n\n* Test your tRPC service with [httpx](https://httpx.sh/docs/tutorial-basics/trpc-testing)\n\n```\n### trpc query\nTRPC http://localhost:8080/greeting.hello\nContent-Type: application/json\n\n{\n  \"name\": \"world\"\n}\n\n### trpc mutate\nTRPCM http://localhost:8080/poster.createPost\nContent-Type: application/json\n\n{\n  \"title\": \"title\",\n  \"text\": \"hello world\"\n}\n```\n      \n# FAQ\n\n### Could I use Spring Framework 6 HTTP Interface with tRPC?\n             \nPlease refer to [tRPC Spring HTTP Interface](https://github.com/linux-china/trpc-http-interface)\n\n# References\n\n* tRPC: https://trpc.io/\n* tRPC testing: https://servicex.sh/docs/tutorial-basics/trpc-testing\n* tRPC Spring HTTP Interface: https://github.com/linux-china/trpc-http-interface","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-china%2Ftrpc-spring-boot-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinux-china%2Ftrpc-spring-boot-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinux-china%2Ftrpc-spring-boot-starter/lists"}