I "write my own" using gawk (GNU awk) scripts. One script does the test instrument control and raw data logging. Another script post-processes the log file to extract the data of interest, and output it as an Octave data file. Then I load the data using GNU Octave.
This setup works on a Win PC with Cygwin, or a Linux PC. It would probably work on a raspberry pi, but I haven't tried it yet.
My instruments connect to a LAN, either directly or via some kind of converter (e.g. a Wiznet 110SR). The control/logging script uses netcat to communicate with the instruments' LAN ports. gawk has a nice co-process feature, which allows scripts to spawn concurrent tasks as/when needed - no need to do everything in a single thread, unless of course you want to.
I was dreading "writing my own", but once I made some system-level decisions (standardize on ethernet, use gawk and netcat), and got some basic scripts working (e.g. simply send *idn? to an instrument and log the response), it turned out to be a lot of fun.