Giter Club home page Giter Club logo

prim-rpc's Introduction

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"

npm npm license npm bundle size 1

Prim+RPC is a bridge between JavaScript environments. Call functions on the server as if they exist on the client, without the wrappers. It's just JavaScript. You could bridge:

  • Web server and client
  • Two browser tabs
  • Main thread and Web Worker
  • Two separate processes
  • Any other separated JavaScript environments

Prim+RPC is framework-agnostic (bring your own server and client tools), fully-typed, lightweight, doesn't require a compile-step, and is loaded with features:

  • File handling
  • Callback support
  • Custom serialization
  • Error handling
  • Request batching
  • HTML form handling
  • Documentation generation
  • Access control

If you know JavaScript, you know how to use Prim+RPC. If you want access to a function, just call it: less setup, easier access, quicker development of your API.

๐Ÿ“– Read the Docs โˆ™ ๐Ÿ’ก Examples โˆ™ โš™๏ธ Setup โˆ™ ๐Ÿ”Œ Plugins โˆ™ ๐Ÿง‘โ€๐Ÿ’ป Follow Author

Contributions

Note

Prim+RPC is in early stages and is marching towards a stable release. Support Prim+RPC by starring the repository, sharing with others, and following for updates.

Happy to have you! Please see the Contribution Guide to learn more. If you're only looking for how to use the library, please see the Documentation.

Issues & Security

  • If you have any questions or are having trouble, feel free to open a new discussion.
  • For security-related issues, please refer to the Security Policy.
  • If you discover a non-security issue with Prim+RPC, please file a new issue so I can take a look!

Release Plan

Warning

Prim+RPC is in alpha and it may be unstable. Keep up-to-date with the latest releases, report any found security issues, and participate in discussions to help shape the future of the project!

Prim+RPC is planned to become stable by the end of Q1 2024, alongside the release Ted's portfolio website that will make use of it.

Prim+RPC Core, the framework-agnostic core of the project, will become stable first and will be released once the default plugins are stable. Lastly, Prim+RPC's optional tooling (such as documentation generation) will become stable. At this point, the alpha tag is planned to be removed. Once I am using Prim+RPC in production, a v1.0 will be released.

Licenses

This project consists of three parts: Code, Documentation, and Assets:

Code: The Prim+RPC code libraries (RPC core, plugins, and tooling) are licensed under the Apache 2.0 license. You may find library source code in the /libs folder of this project. Assets, which may appear alongside Code, are excluded from this license.

Documentation: The documentation website and text are proprietary. You may find documentation in the /apps folder of this project. Unauthorized usage of Documentation outside of fair use is strictly prohibited.

Assets: The "Prim+RPC" name and logo as well as the "Dose of Ted" name and logo are proprietary. Assets are excluded from all licenses, regardless of where they are located in the project. Unauthorized usage of Assets outside of fair use is strictly prohibited.

Footnotes

  1. These badges report stats for @doseofted/prim-rpc on the npm registry. โ†ฉ

prim-rpc's People

Contributors

doseofted avatar github-actions[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

elias-rf

prim-rpc's Issues

Are you considering supporting other protocols

This library is eye-catching. awesome!

How high is the call overhead when used on a single machine?

Would it be faster if communication is done through shared memory?

How fast does a client cold start?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.