{"id":13627351,"url":"https://github.com/hardbyte/python-can","last_synced_at":"2025-05-10T12:25:36.875Z","repository":{"id":37431194,"uuid":"69090889","full_name":"hardbyte/python-can","owner":"hardbyte","description":"The can package provides controller area network support for Python developers","archived":false,"fork":false,"pushed_at":"2025-04-01T15:32:10.000Z","size":5739,"stargazers_count":1384,"open_issues_count":239,"forks_count":631,"subscribers_count":75,"default_branch":"main","last_synced_at":"2025-05-08T23:44:28.093Z","etag":null,"topics":["can-bus","python"],"latest_commit_sha":null,"homepage":"https://python-can.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hardbyte.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-24T08:42:42.000Z","updated_at":"2025-05-02T13:21:07.000Z","dependencies_parsed_at":"2024-02-03T16:43:31.777Z","dependency_job_id":"aa76c7de-7be9-4dc8-8788-179717abda0c","html_url":"https://github.com/hardbyte/python-can","commit_stats":{"total_commits":2501,"total_committers":196,"mean_commits":"12.760204081632653","dds":0.7293082766893243,"last_synced_commit":"654a02ae24bfc50bf1bb1fad7aab4aa88763d302"},"previous_names":[],"tags_count":86,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardbyte%2Fpython-can","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardbyte%2Fpython-can/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardbyte%2Fpython-can/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hardbyte%2Fpython-can/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hardbyte","download_url":"https://codeload.github.com/hardbyte/python-can/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253413735,"owners_count":21904528,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["can-bus","python"],"created_at":"2024-08-01T22:00:33.157Z","updated_at":"2025-05-10T12:25:36.843Z","avatar_url":"https://github.com/hardbyte.png","language":"Python","readme":"python-can\n==========\n\n|pypi| |conda| |python_implementation| |downloads| |downloads_monthly|\n\n|docs| |github-actions| |coverage| |mergify| |formatter|\n\n.. |pypi| image:: https://img.shields.io/pypi/v/python-can.svg\n   :target: https://pypi.python.org/pypi/python-can/\n   :alt: Latest Version on PyPi\n\n.. |conda| image:: https://img.shields.io/conda/v/conda-forge/python-can\n   :target: https://github.com/conda-forge/python-can-feedstock\n   :alt: Latest Version on conda-forge\n\n.. |python_implementation| image:: https://img.shields.io/pypi/implementation/python-can\n   :target: https://pypi.python.org/pypi/python-can/\n   :alt: Supported Python implementations\n\n.. |downloads| image:: https://static.pepy.tech/badge/python-can\n   :target: https://pepy.tech/project/python-can\n   :alt: Downloads on PePy\n\n.. |downloads_monthly| image:: https://static.pepy.tech/badge/python-can/month\n   :target: https://pepy.tech/project/python-can\n   :alt: Monthly downloads on PePy\n\n.. |formatter| image:: https://img.shields.io/badge/code%20style-black-000000.svg\n   :target: https://github.com/python/black\n   :alt: This project uses the black formatter.\n\n.. |docs| image:: https://readthedocs.org/projects/python-can/badge/?version=stable\n   :target: https://python-can.readthedocs.io/en/stable/\n   :alt: Documentation\n\n.. |github-actions| image:: https://github.com/hardbyte/python-can/actions/workflows/ci.yml/badge.svg\n   :target: https://github.com/hardbyte/python-can/actions/workflows/ci.yml\n   :alt: Github Actions workflow status\n\n.. |coverage| image:: https://coveralls.io/repos/github/hardbyte/python-can/badge.svg?branch=develop\n   :target: https://coveralls.io/github/hardbyte/python-can?branch=develop\n   :alt: Test coverage reports on Coveralls.io\n\n.. |mergify| image:: https://img.shields.io/endpoint.svg?url=https://api.mergify.com/v1/badges/hardbyte/python-can\u0026style=flat\n   :target: https://mergify.io\n   :alt: Mergify Status\n\nThe **C**\\ ontroller **A**\\ rea **N**\\ etwork is a bus standard designed\nto allow microcontrollers and devices to communicate with each other. It\nhas priority based bus arbitration and reliable deterministic\ncommunication. It is used in cars, trucks, boats, wheelchairs and more.\n\nThe ``can`` package provides controller area network support for\nPython developers; providing common abstractions to\ndifferent hardware devices, and a suite of utilities for sending and receiving\nmessages on a can bus.\n\nThe library currently supports CPython as well as PyPy and runs on Mac, Linux and Windows.\n\n==============================  ===========\nLibrary Version                 Python\n------------------------------  -----------\n  2.x                           2.6+, 3.4+\n  3.x                           2.7+, 3.5+\n  4.0+                          3.7+\n  4.3+                          3.8+\n==============================  ===========\n\n\nFeatures\n--------\n\n- common abstractions for CAN communication\n- support for many different backends (see the `docs \u003chttps://python-can.readthedocs.io/en/stable/interfaces.html\u003e`__)\n- receiving, sending, and periodically sending messages\n- normal and extended arbitration IDs\n- `CAN FD \u003chttps://en.wikipedia.org/wiki/CAN_FD\u003e`__ support\n- many different loggers and readers supporting playback: ASC (CANalyzer format), BLF (Binary Logging Format by Vector), MF4 (Measurement Data Format v4 by ASAM), TRC, CSV, SQLite, and Canutils log\n- efficient in-kernel or in-hardware filtering of messages on supported interfaces\n- bus configuration reading from a file or from environment variables\n- command line tools for working with CAN buses (see the `docs \u003chttps://python-can.readthedocs.io/en/stable/scripts.html\u003e`__)\n- more\n\n\nExample usage\n-------------\n\n``pip install python-can``\n\n.. code:: python\n\n    # import the library\n    import can\n\n    # create a bus instance using 'with' statement,\n    # this will cause bus.shutdown() to be called on the block exit;\n    # many other interfaces are supported as well (see documentation)\n    with can.Bus(interface='socketcan',\n                  channel='vcan0',\n                  receive_own_messages=True) as bus:\n\n       # send a message\n       message = can.Message(arbitration_id=123, is_extended_id=True,\n                             data=[0x11, 0x22, 0x33])\n       bus.send(message, timeout=0.2)\n\n       # iterate over received messages\n       for msg in bus:\n           print(f\"{msg.arbitration_id:X}: {msg.data}\")\n\n       # or use an asynchronous notifier\n       notifier = can.Notifier(bus, [can.Logger(\"recorded.log\"), can.Printer()])\n\nYou can find more information in the documentation, online at\n`python-can.readthedocs.org \u003chttps://python-can.readthedocs.org/en/stable/\u003e`__.\n\n\nDiscussion\n----------\n\nIf you run into bugs, you can file them in our\n`issue tracker \u003chttps://github.com/hardbyte/python-can/issues\u003e`__ on GitHub.\n\n`Stackoverflow \u003chttps://stackoverflow.com/questions/tagged/can+python\u003e`__ has several\nquestions and answers tagged with ``python+can``.\n\nWherever we interact, we strive to follow the\n`Python Community Code of Conduct \u003chttps://www.python.org/psf/codeofconduct/\u003e`__.\n\n\nContributing\n------------\n\nSee `doc/development.rst \u003cdoc/development.rst\u003e`__ for getting started.\n","funding_links":[],"categories":["Libraries and Tools","Network and Middleware","CAN","Utils"],"sub_categories":["Python","Controller Area Network","Tools","Python Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardbyte%2Fpython-can","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhardbyte%2Fpython-can","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhardbyte%2Fpython-can/lists"}