{"id":23773531,"url":"https://github.com/beenotung/create-rpc","last_synced_at":"2026-02-10T09:05:28.907Z","repository":{"id":148760181,"uuid":"619200862","full_name":"beenotung/create-rpc","owner":"beenotung","description":"Starter template of Typescript web server with auto-generated client SDK using RPC with ajax.","archived":false,"fork":false,"pushed_at":"2024-05-09T19:57:44.000Z","size":170,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-05-13T16:41:17.037Z","etag":null,"topics":["code-generation","rpc-client","rpc-server","starter-kit","starter-template","typescript-boilerplate"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/create-rpc","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beenotung.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":"2023-03-26T15:08:33.000Z","updated_at":"2024-07-06T17:38:14.567Z","dependencies_parsed_at":null,"dependency_job_id":"bb7d7d00-7e9d-4ff3-9287-31a6aa43c057","html_url":"https://github.com/beenotung/create-rpc","commit_stats":null,"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fcreate-rpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fcreate-rpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fcreate-rpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beenotung%2Fcreate-rpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beenotung","download_url":"https://codeload.github.com/beenotung/create-rpc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239961075,"owners_count":19725456,"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":["code-generation","rpc-client","rpc-server","starter-kit","starter-template","typescript-boilerplate"],"created_at":"2025-01-01T05:41:04.886Z","updated_at":"2026-02-10T09:05:23.870Z","avatar_url":"https://github.com/beenotung.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# create-rpc\n\nStarter template of Typescript web server with auto-generated client SDK using RPC with ajax.\n\n[![npm Package Version](https://img.shields.io/npm/v/create-rpc.svg)](https://www.npmjs.com/package/create-rpc)\n\n## Usage\n\nInteractive mode:\n\n```bash\nnpm init rpc\n# or\nnpx create-rpc\n```\n\nNon-interactive mode:\n\n```bash\nnpx -y create-rpc --single [project-name]\n# or\nnpx -y create-rpc --multi [project-name]\n# or\nnpx -y create-rpc --restful [project-name]\n```\n\n## Template Features\n\n- Auto-generate standalone[1] client SDK in Typescript\n- Infer input/output type from sample data or [cast.ts](https://github.com/beenotung/cast.ts) parser\n- Auto apply runtime type checking on input/output data\n- Auto-generate (knex) database migration with quick-erd\n- Typed array-like ORM with better-sqlite3-proxy\n- Hashing password with bcrypt\n- JWT generation\n- Auto-storing JWT token\n- Dotenv setup\n- Multiple templates\n  - single module API\n  - multi module API\n  - restful API\n\n[1]: The generated client sdk is self-contained. You don't need to import the server from the client project.\n\n## Available Commands\n\nInside the server directory, you can run several commands:\n\n```\nnpm start\n  Starts the auto-refresh development server.\n  [single module] It auto generates the client/src/sdk.ts based on the APIs defined in server/src/core.ts.\n  [multi module] It auto generates the client/src/api/[name].ts based on the APIs defined in server/src/modules/[name].ts.\n  [restful] It auto generates the client/src/api/[name].ts based on the APIs defined in server/src/modules/[name].ts.\n\nnpm run db:setup\n  Migrate the database schema to latest version.\n\nnpm run db:plan\n  Auto-generate migration based on erd.txt and current database schema.\n\nnpm run db:update\n  Apply the new migration plan, and update the proxy.ts based on the erd.txt.\n\nnpm run db:seed\n  Populate the database with sample data in server/seed.ts.\n\nnpm run build\n  Builds the web project into 'dist' folder.\n```\n\n## License\n\nThis project is licensed with [BSD-2-Clause](./LICENSE)\n\nThis is free, libre, and open-source software. It comes down to four essential freedoms [[ref]](https://seirdy.one/2021/01/27/whatsapp-and-the-domestication-of-users.html#fnref:2):\n\n- The freedom to run the program as you wish, for any purpose\n- The freedom to study how the program works, and change it so it does your computing as you wish\n- The freedom to redistribute copies so you can help others\n- The freedom to distribute copies of your modified versions to others\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeenotung%2Fcreate-rpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbeenotung%2Fcreate-rpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbeenotung%2Fcreate-rpc/lists"}