Hello, some weeks ago i published an open source ROS client library for the Go programming language, written in pure Go and without external dependencies:
In my company we use ROS in a lot of fields, from robotics to image processing, but the deployment is sometimes difficult, since:
- the standard library is very big, and therefore uploads can take much time
- the standard build chain makes very difficult the generation of static executables
- the standard library forces to choose between C++ and Python
Go is one of the languages of choice when writing microservices and containerized applications, and there are already a couple of ROS implementations for Go, but they have some problems:
- rosgo (https://github.com/akio/rosgo) is unmaintained
- rclgo (https://github.com/juaruipav/rclgo) is a wrapper around a C++ library, a non-ideal situation
Some months ago i decided to rewrite everything by scratch, and this library is the result. It should have all the base features (topics, services, messages) and it is already powering some nodes in production-grade environments.
ROS2 support is currently missing, but i hope to find time and reasons to start working on it too.