Ideals

Simplicity

Varlink aims to be as simple as possible. It is not specifically optimized for anything else but ease-of-use and maintainability.

Discoverability

Varlink services describe themselves; with a machine-readable interface definition, and human-readable documentation.

Remotability

It should be easy to forward, proxy, redirect varlink interfaces over any connection-oriented transport. Varlink should be free of any side-effects of local APIs. All interactions need to be simple messages on a network, not carrying things like file descriptors or direct references to locally stored files.

Focus

Varlink is the protocol and definition of interfaces, but it does not define or provide any significant functionality itself.

Errors

Varlink errors should carry enough information to be consumed by machines and automated rules.

Testing

Making it easy to run automated tests against varlink interfaces should be considered a necessity when designing interfaces.