Tech! français

Kplex Home
top border

What is Kplex?

kplex is a multitransport software data multiplexer which runs on GNU/Linux, Mac OS X, FreeBSD, NetBSD and OpenWRT. It works with data which conform to the NMEA-0183 standard, but has been written without reference to any proprietary documentation not available in the public domain. Kplex multiplexes data inputs from sources such as serial lines, pseudo terminals and network interfaces hrefand send to any (reasonable) number of outputs. kplex can perform filtering of inputs (so you only get the data you want, or don't get the data you don't want from a given source) and outputs (so you only send what you want where you want) and can perform fine-grained failover so that for any given type of data, you specify a priority order of the source you would like to take it from. For further details see the kplex overview.

kplex was last updated on 6th January 2019. See the CHANGELOG for details.


July 17th 2020

There is currently no 64-bit arm package for kplex. This will be addressed in the next release which will also see use of a systemd unit file in the standard install. I haven't yet experimented with a 64-bit ARM OS but Frederic Guilbault notes that the following is required prior to installing the 32-bit package on arm64: apt-get install -y -q gcc-8-base:armhf libc6:armhf libgcc1:armhf

In other news, the new (and poorly tested) "keepalive" branch on github has two significant features:

  • Allows "heartbeats" of proprietary sentences to be sent out of bi-directional or output interfaces at user-specified intervals. This can be used amongst other things as an application-level alternative to tcp keepalives for maintaining NAT state on routers between source and destination.
  • Expanded range of behaviours when dealing with checksums including the option to add checksums if missing which may be useful for devices which don't correctly add them but need to talk to devices which require them.

Use of these new options is outlined here but bear in mind this is not a full beta test and should be considered "alpha" code at this point.

July 9th 2020

The i8n branch has been merged with develop. Huge thanks to John Kitz for the massive task of translating all kplex messages into Dutch. Translations, full or partial, into other languages gratefully received.

May 16th 2019

First steps towards internationalization: the i18n branch now on github has most message strings replaced by calls to catgets(). If anyone would like to add message translations in their own language, please check out the i18n branch from github and see the instructions on internationalization here.

January 6th 2019

1.4 is released today and available from the download page. This is mostly a collection of bug fixes accumulated over the past 3 years but also contains a few minor behaviour updates. See the 1.4 beta page for further details.

Note that alhough systemd is now well-entrenched in Linux systems kplex still by default uses legacy system V init scripts for startup although a systemd unit file is now distributed with the source for those that wish to use it.

Automatic systemd configuration on installation will be addressed in a future release.

Thanks as always to all who have contributed advice and feedback!

November 18th 2018

1.4rc2 is released today as source and debs for x84_64 and raspberry pi. This is mainly just a collection of accumulated bug fixes but for further details see the beta page. This version retains legacy init scripts for startup but an example systemd unit file is provided in /usr/share/kplex/kplex.service for those that wish to try it.

October 26th 2017

It's been a long time since the last version of kplex. Quite a few bugs have been fixed in the past year and 1.4 is on its way. Source for 1.4 beta is now available on the download page and in the 1.4 branch on github. Please try it out and send feedback.

deb packages are a little delayed while consideration is given as to how best to deal with legacy systems, i.e. separate packages for older pre-systemd versions of raspbian or attempting to support older and new systems with a single package. Suggestions welcome in the kplex google group.

Thanks to everyone who contributed their suggestions and feedback.

Old News

Previous kplex news is archived here.

bottom border