Clients are servers; all endpoints are created equal
docs.dhttp.netIn a more natural Internet, an endpoint would have a stable name of its own.It could eatablish a connection in which each side knows who it is talking to, and choose exactly which services to make available to the other.Adding a new agent or endpoint would then be a matter of granting it access to that endpoint - not first making it a member of the same shared network.
In that model, connectivity and trust are releationships between endpoints, rather than something determined by whichever network they happen to be on.
Why this rather than Iroh?
The project is fully open source. You can find the code and learn more on GitHub: https://github.com/genmeta
Iroh absolutely supports secure peer-to-peer communication, and it is extensible. The distinction we’re aiming for is what users can do with that connectivity.
We believe more interactions will happen through Web APIs, especially with agents and automation. A device’s capabilities should be accessible to different clients through authorized API calls, rather than being available only through a particular app’s interface.
DHttp brings together human-readable endpoint names, certificate-backed identities, cross-network HTTP communication, and authorization by caller identity, API path and method. Connectivity is between endpoints; permission is granted for specific API operations. Being able to reach a device does not imply permission to use everything on it.
For example, an identity could be allowed to call GET /temperature while being denied POST /unlock on the same endpoint. Pishoo brings existing HTTP services into this model, while AnySee provides a user-facing entry point. Services and agents can access the APIs programmatically.
Iroh provides building blocks on which a similar system could be built. The reason to choose DHttp is that we provide this HTTP-based service model and its tools together, including readable naming and API-level permissions.