Caproto implements several clients, all built on the same core. This page aims to help you choose which one is best for your application.

The Synchronous Client is simplistic but functional, easy to read and understand what happens with a single operation. It is perfectly fine to use directly, but should generally not be used to build larger programs. It opts for simplicity over performance.

The Threading Client is a high-performance client and the one with the most features and testing behind it. We generally recommend this one.

The Pyepics-Compatible Client should only be used if you want to have compatibility with some existing pyepics-based code.

Use the Asynchronous Clients if you wish to write client code that takes advantage of cooperative multitasking with asyncio.

The Command-Line Client provides commandline tools (caproto-get, caproto-put, …) that are drop-in replacements for their analogues in EPICS’ reference implementation (caget, caput, …). They are backed by the synchronous client.