Native Golang client for EPICS Channel Access

The Experimental Physics and Industrial Control System (EPICS) provides essential control infrastructure in large scientific research facilities worldwide. Currently, EPICS Channel Access (CA) clients are primarily implemented in languages such as C/C++, Python, or Java, each with specific strengths but also certain limitations. To address these challenges, I have developed a native CA client entirely in Golang, a modern programming language known for clear syntax and built-in concurrency support. In this presentation, I will explain the key design principles behind this new client, highlighting how Golang’s asynchronous programming capabilities naturally align with EPICS’s communication model. I will also present preliminary benchmark results illustrating the client’s practical performance and discuss ways Golang simplifies integration within complex accelerator control environments. Finally, I will outline future plans and identify specific opportunities for community collaboration, ensuring this client meets the evolving needs of EPICS users.

Publication Details

Journal
JACOW
Published
2025-12-05
DOI
https://doi.org/10.18429/jacow-icalepcs2025-wecg002
Primary Topic
Computational Physics and Python Applications
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Native Golang client for EPICS Channel Access

JACOW
Computational Physics and Python Applications
article

Native Golang client for EPICS Channel Access

article en

Abstract

The Experimental Physics and Industrial Control System (EPICS) provides essential control infrastructure in large scientific research facilities worldwide. Currently, EPICS Channel Access (CA) clients are primarily implemented in languages such as C/C++, Python, or Java, each with specific strengths but also certain limitations. To address these challenges, I have developed a native CA client entirely in Golang, a modern programming language known for clear syntax and built-in concurrency support. In this presentation, I will explain the key design principles behind this new client, highlighting how Golang’s asynchronous programming capabilities naturally align with EPICS’s communication model. I will also present preliminary benchmark results illustrating the client’s practical performance and discuss ways Golang simplifies integration within complex accelerator control environments. Finally, I will outline future plans and identify specific opportunities for community collaboration, ensuring this client meets the evolving needs of EPICS users.

JACOW
Industry, innovation and infrastructure
Openalex Percentile: Top 21%
Computational Physics and Python Applications
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Native Golang client for EPICS Channel Access · JACOW (2025) | TGRS Research Map | TGRS