Type friendly agreements between peers for rpc and forms. A Holepunch 🕳🥊 project.
Agreeable helps people who are used to building web services migrate to building p2p services. Building and managing typed, versioned apis will help foster an ecosystem of great service providers of cool features that peers can use. The agreement allows for good type checking between peers, and easy input validation. Agreeable allows for coding at lower level interfaces. You can use zod or jsonschema, you can even drop down and use jsonrpc-mux directly. But we hope that at least one side of the client/server releationship uses and publishes agreements so all can benefit. Also check the roadmap for a high level view of more things that can be possible. There is still a need in p2p environments to have services. We want to make it easy to create, use, test, and share these services. Agreeable makes spinning up a friendly p2p service easy.
The simplest getting started can be found at agreeable-peer. Please follow those instructions.
For a nice UI to browse and test agreeable-peer services, us agreeable-ui
Here are some things or ideas that could happen in this space
- Simple Form collection. One function form submission, which gets stored in a hypercore
- Form reader - remotely read the form submissions
- Load agreements from a hyperdrive remotely
- Registry of agreements - to have service lookups
- Load balancer of implementation, for really compute heavy services
- signed executors
- 2 peer executor verification