Following a discussion with @FreddieAkeroyd ...
We currently use CaChannel python bindings. These are not particularly actively maintained nowadays, and we are gradually moving into a situation where we have a de-facto hard fork of it anyway.
The EPICS community at large seems to have mostly settled on pyepics for sync epics CA bindings (for async bindings, we're already using aioca in e.g. bluesky). It can work with epicscorelibs using epicscorelibs.path.pyepics and/or explicitly setting env variables.
Consider whether we could/should move to pyepics as opposed to cachannel as our primary underlying synchronous CA bindings for user code.
Following a discussion with @FreddieAkeroyd ...
We currently use
CaChannelpython bindings. These are not particularly actively maintained nowadays, and we are gradually moving into a situation where we have a de-facto hard fork of it anyway.The EPICS community at large seems to have mostly settled on
pyepicsforsyncepics CA bindings (forasyncbindings, we're already usingaiocain e.g. bluesky). It can work withepicscorelibsusingepicscorelibs.path.pyepicsand/or explicitly setting env variables.Consider whether we could/should move to
pyepicsas opposed tocachannelas our primary underlying synchronous CA bindings for user code.