# CAN Interface Modules

python-can hides the low-level, device-specific interfaces to controller area network adapters in interface dependant modules. However as each hardware device is different, you should carefully go through your interface’s documentation.

The available interfaces are:

- SocketCAN
- Kvaser’s CANLIB
- CAN over Serial
- CAN over Serial / SLCAN
- IXXAT Virtual CAN Interface
- PCAN Basic API
- USB2CAN Interface
- NI-CAN
- isCAN
- NEOVI Interface
- Vector
- Virtual
- CANalyst-II
- SYSTEC interface

Additional interfaces can be added via a plugin interface. An external package can register a new interface by using the `can.interface` entry point in its setup.py.

The format of the entry point is `interface_name=module:classname` where `classname` is a concrete `can.BusABC` implementation.

    entry_points={
        'can.interface': [
            "interface_name=module:classname",
        ]
    },

The Interface Names are listed in Configuration.