

That’s how it looks to me right now.

The Agent API provides a uniform interface to the host platform. It encapsulates “real world” effects and provides a theoretical foundation.

The Transport API makes everything Rackety.

The Protocol API is a set of base functionality for implementing protocols, along with a “standard” set of protocol implementations.

The URI API is at least a four-part data structure: scheme, authority, path, query. The net
library url struct operates like an interface to an HTTP agent, which feels clunky. The URI API should probably remain simple and orthogonal to other net2
components.

In the formalism, a URI is just a reference to its parts.

Revised summary:

The Agent API is the interface to be provided by “registered name” implementations. It creates and destroys ports.

The Transport API manages local agents and communicates with remote agents. It sends and receives bytes.

The URI API is a well-defined interface to a URI data structure.

The Protocol API is a toolbox for coordinating transport activity.