{"id":18202460,"url":"https://github.com/doseofted/prim-rpc","last_synced_at":"2025-04-05T09:04:49.304Z","repository":{"id":171206089,"uuid":"589111615","full_name":"doseofted/prim-rpc","owner":"doseofted","description":"Easy-to-understand, type-safe, transport-agnostic RPC/IPC for JavaScript, supporting callbacks, batching, file handling, custom serialization, and more.","archived":false,"fork":false,"pushed_at":"2025-03-07T20:50:13.000Z","size":14446,"stargazers_count":106,"open_issues_count":6,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-29T08:02:53.770Z","etag":null,"topics":["api","ipc","javascript","json","rpc","type-safe","typescript"],"latest_commit_sha":null,"homepage":"https://prim.doseofted.me","language":"TypeScript","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/doseofted.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-ASSETS.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-15T04:47:04.000Z","updated_at":"2025-03-25T12:10:13.000Z","dependencies_parsed_at":"2024-03-03T07:31:19.393Z","dependency_job_id":"db00ffa4-6f79-490d-b2c1-6f0a341de5f6","html_url":"https://github.com/doseofted/prim-rpc","commit_stats":{"total_commits":1384,"total_committers":2,"mean_commits":692.0,"dds":"0.024566473988439252","last_synced_commit":"8b9c9c1e91fe8443cf1216847575e40d3e5136c1"},"previous_names":["doseofted/prim-rpc"],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doseofted%2Fprim-rpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doseofted%2Fprim-rpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doseofted%2Fprim-rpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doseofted%2Fprim-rpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doseofted","download_url":"https://codeload.github.com/doseofted/prim-rpc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247312068,"owners_count":20918344,"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":["api","ipc","javascript","json","rpc","type-safe","typescript"],"created_at":"2024-11-03T10:04:04.708Z","updated_at":"2025-04-05T09:04:49.224Z","avatar_url":"https://github.com/doseofted.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Prim+RPC. Pictured are two very short JavaScript files: a simple function on the server-side and a call to that function on the client-side. Tagline: \"Backend, meet Frontend\"](./.github/docs-screenshot.png)](https://prim.doseofted.me/)\n\n[![npm](https://img.shields.io/npm/v/@doseofted/prim-rpc?color=6D53FF\u0026labelColor=2D0D60)](https://www.npmjs.com/package/@doseofted/prim-rpc)\n[![npm license](https://img.shields.io/npm/l/%40doseofted%2Fprim-rpc?color=399EEC\u0026labelColor=2D0D60)](https://spdx.org/licenses/Apache-2.0.html)\n[![npm bundle size](https://img.shields.io/bundlephobia/minzip/@doseofted/prim-rpc/latest?color=EB84FF\u0026labelColor=2D0D60)](https://bundlephobia.com/package/@doseofted/prim-rpc@latest)\n[^1]\n\n**Prim+RPC is a bridge between JavaScript environments.** Call functions on the server as if they exist on the client,\nwithout the wrappers. It's just JavaScript. You could bridge:\n\n- Web server and client\n- Two browser tabs\n- Main thread and Web Worker\n- Two separate processes\n- Any other separated JavaScript environments\n\nPrim+RPC is framework-agnostic (bring your own server and client tools), fully-typed, lightweight, doesn't require a\ncompile-step, and is loaded with features:\n\n- File handling\n- Callback support\n- Custom serialization\n- Error handling\n- Request batching\n- HTML form handling\n- Documentation generation\n- Access control\n\n**If you know JavaScript, you know how to use Prim+RPC**. If you want access to a function, just call it: less setup,\neasier access, quicker development of your API.\n\n**[📖 Read the Docs](https://prim.doseofted.me/) ∙ [💡 Examples](https://prim.doseofted.me/docs/learn/examples) ∙\n[⚙️ Setup](https://prim.doseofted.me/docs/learn/setup) ∙ [🔌 Plugins](https://prim.doseofted.me/docs/reference/plugins)\n∙ [🧑‍💻 Follow Author](https://doseofted.me/)**\n\n## Contributions\n\n\u003e [!NOTE]\n\u003e\n\u003e Prim+RPC is in early stages and is marching towards a [stable release](#release-plan). Support Prim+RPC by\n\u003e [starring the repository](https://github.com/doseofted/prim-rpc), sharing with others, and following for updates.\n\nHappy to have you! Please see the [Contribution Guide](./CONTRIBUTING.md) to learn more. If you're only looking for how\nto use the library, please see the [Documentation](https://prim.doseofted.me/).\n\n## Issues \u0026 Security\n\n- If you have any questions or are having trouble, feel free to open a\n  [new discussion](https://github.com/doseofted/prim-rpc/discussions).\n- For security-related issues, please refer to the [Security Policy](./SECURITY.md).\n- If you discover a non-security issue with Prim+RPC, please\n  [file a new issue](https://github.com/doseofted/prim-rpc/issues/new) so I can take a look!\n\n## Release Plan\n\n\u003e [!WARNING]\n\u003e\n\u003e Prim+RPC is in **alpha** and it may be unstable. Keep up-to-date with the\n\u003e [latest releases](https://github.com/doseofted/prim-rpc/releases), report any\n\u003e [found security issues](https://github.com/doseofted/prim-rpc/security/advisories/new), and\n\u003e [participate in discussions](https://github.com/doseofted/prim-rpc/discussions) to help shape the future of the\n\u003e project!\n\nPrim+RPC is planned to become stable by the end of Q1 2024, alongside the release Ted's\n[portfolio website](https://doseofted.me/) that will make use of it.\n\nPrim+RPC Core, the framework-agnostic core of the project, will become stable first and will be released once the\ndefault plugins are stable. Lastly, Prim+RPC's optional tooling (such as documentation generation) will become stable.\nAt this point, the alpha tag is planned to be removed. Once I am using Prim+RPC in production, a v1.0 will be released.\n\n## Licenses\n\nThis project consists of three parts: Code, Documentation, and Assets:\n\n**Code**: The Prim+RPC code libraries (RPC core, plugins, and tooling) are licensed under the\n[Apache 2.0 license](./LICENSE.txt). You may find library source code in the [`/libs`](./libs/) folder of this project.\nAssets, which may appear alongside Code, are excluded from this license.\n\n**Documentation**: The documentation website and text are [proprietary](./LICENSE-DOCS.md). You may find documentation\nin the [`/apps`](./apps/) folder of this project. Unauthorized usage of Documentation outside of fair use is strictly\nprohibited.\n\n**Assets**: The \"Prim+RPC\" name and logo as well as the \"Dose of Ted\" name and logo are\n[proprietary](./LICENSE-ASSETS.md). Assets are excluded from all licenses, regardless of where they are located in the\nproject. Unauthorized usage of Assets outside of fair use is strictly prohibited.\n\n[^1]:\n    These badges report stats for [`@doseofted/prim-rpc`](https://www.npmjs.com/package/@doseofted/prim-rpc) on the npm\n    registry.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoseofted%2Fprim-rpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoseofted%2Fprim-rpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoseofted%2Fprim-rpc/lists"}