Universal API for Controller Area Network (CAN bus or CAN) adapters.
Switch branches/tags
Nothing to show
Clone or download



Universal API for Controller Area Network (CAN bus or CAN) adapters.

Project Objective

While SocketCAN is providing a great generic interface for using CAN adapters on Linux, no such implementation exists for Windows or macOS. This complicates the cross-platform development of CAN-based applications.

It is therefore the objective of this open-source project to provide an universal CAN API (uCAN) that covers all three major operating systems and offers a simple and clean DLL based API.

Supported OS' and Hardware

uCAN currently supports the following hardware:

  • Windows:
  • macOS:
    • SL CAN
  • Linux:
    • Socket CAN
    • SL CAN

Software Dependencies

The portability of uCAN is based on the Boost C++ Libraries. The build of the library is managed by the SCons software construction tools (in conjunction with Python). Please review the Construction.txt file for OS specific details.


While uCAN can be built from the command-line, it is recommended that the Eclipse IDE be used to edit the source code. For better viewing and formatting of the project's Python files the Eclipse plugin PyDev may be installed.


uCAN is released under the LGPL license. Please see the LICENSE.txt file for more information.


As a real software engineer will quickly discover, this code has been primarily written by a non computer scientist. Consequently, suggestions for improvements and general refactoring are more than welcome!

We naturally also very much appreciate your bug reports, bug-fixes and feature contributions. Credit will always be given in the Contributors.txt file.