awesome-repositories.com
Blog
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
libusb avatar

libusb/libusb

0
View on GitHub↗
6,085 stars·2,053 forks·C·LGPL-2.1·2 vueslibusb.info↗

Libusb

libusb is a cross-platform user-space library that provides a consistent C API for discovering, configuring, and communicating with USB devices from applications. It abstracts operating-system-specific USB driver details behind a single interface that works on Linux, macOS, Windows, and other platforms, enabling developers to write portable USB code without platform-specific knowledge.

The library supports both synchronous and asynchronous I/O models for USB transfers. Synchronous operations block the calling thread until a transfer completes, offering a straightforward sequential programming model, while asynchronous operations start non-blocking transfers and invoke a user-supplied callback upon completion, enabling concurrent data flows. All functions return negative integer error codes that map to documented constants, allowing callers to diagnose failures without exceptions. The library also provides structured diagnostic output to standard error, activated through an API call or environment variable, to aid troubleshooting.

For device management, libusb includes a hotplug event polling mechanism that monitors system device notifications on supported platforms and fires a registered callback when a USB device is attached or removed during runtime. The library handles control, bulk, interrupt, and isochronous transfer types, routing each through separate code paths that match the USB protocol’s timing and data rules.

Features

  • USB Device Communication - Provides a cross-platform C API for control, bulk, interrupt, and isochronous USB data transfers.
  • USB Endpoint Transfers - Sends control, bulk, interrupt, and isochronous data between a host and USB device via endpoint transfers.
  • Asynchronous USB Transfer Engines - Starts non-blocking USB I/O operations that notify completion via callbacks for greater concurrency.
  • Cross-Platform USB Access - Provides a consistent C API for discovering and communicating with USB devices across Linux, macOS, and Windows.
  • USB - Enables non-blocking USB data transfers with completion notification for concurrent application designs.
  • USB Asynchronous Transfers - Provides non-blocking USB transfers with callback-based completion notification for concurrent application designs.
  • Synchronous Blocking I/O - Provides synchronous blocking USB transfers for a straightforward sequential programming interface.
  • USB Synchronous Transfers - Runs USB I/O operations that block until completion, providing a simple sequential programming model.
  • Platform Abstraction Layers - Hides OS-specific USB driver details behind a single C API that works across Linux, macOS, and Windows.
  • Cross-Platform USB Libraries - Provides a consistent user-space API to discover, configure, and communicate with USB devices across operating systems.
  • Transfer Type Routing - Routes control, bulk, interrupt, and isochronous requests through separate code paths matching USB protocol rules.
  • USB Error Diagnosis - Interprets negative error codes from USB operations to identify and troubleshoot device communication failures.
  • USB Error Code Mappings - Maps negative error codes from USB function calls to documented constants for diagnosing device communication failures.
  • Hotplug Callback Registration - Triggers registered callbacks when USB devices are attached or removed on supported platforms during runtime.
  • Runtime Hotplug Detection - Receives notifications when USB devices are attached or removed from the system during runtime via polling.
  • USB Hotplug Event Handlers - Implements a hotplug polling mechanism that fires callbacks when USB devices are attached or removed during runtime.
  • USB Hotplug Polling - Monitors system device notifications and fires callbacks when USB devices are attached or removed during runtime.
  • Negative Error Code Returns - Returns negative integer error codes from all functions, enabling callers to diagnose failures without exceptions.
  • USB Error Code Interpreters - Ships a convention of returning negative error codes that map to documented constants for diagnosing USB communication failures.
  • Systèmes embarqués - User-space USB communication library.
  • General Libraries - Generic access library for USB devices.

Historique des stars

Graphique de l'historique des stars pour libusb/libusbGraphique de l'historique des stars pour libusb/libusb

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Alternatives open source à Libusb

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Libusb.
  • hathach/tinyusbAvatar de hathach

    hathach/tinyusb

    6,524Voir sur GitHub↗

    TinyUSB

    Cembeddedmidimsc
    Voir sur GitHub↗6,524
  • blacktop/ipswAvatar de blacktop

    blacktop/ipsw

    3,163Voir sur GitHub↗

    ipsw is a specialized toolkit for iOS firmware analysis, binary reverse engineering, and hardware interaction. It provides a suite of tools for downloading, extracting, and analyzing firmware images and kernel caches, alongside a MachO binary analysis tool for disassembling and patching executables. The project distinguishes itself through integrated language-model-powered code reconstruction to translate machine code into high-level source code. It also features an automation client for the App Store Connect API to manage certificates and application settings. The framework covers a broad r

    Goappleclass-dumpdyld
    Voir sur GitHub↗3,163
  • cnlohr/rawdrawandroidAvatar de cnlohr

    cnlohr/rawdrawandroid

    4,281Voir sur GitHub↗

    rawdrawandroid is a framework for building Android applications using C and Make. It provides a native development system that compiles source code into standalone executable packages, bypassing the standard Java or Kotlin toolchains and virtual machines. The project features a native UI toolkit for creating hardware-accelerated graphics windows and a dedicated hardware interface for direct communication with USB peripherals and onboard sensors. It utilizes a containerized build environment to ensure consistent compilation and signing of binaries without requiring local toolchain installation

    C
    Voir sur GitHub↗4,281
  • embassy-rs/embassyAvatar de embassy-rs

    embassy-rs/embassy

    8,813Voir sur GitHub↗

    Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It enables the execution of multiple concurrent tasks to maximize energy efficiency and CPU usage, utilizing an async executor that puts the processor to sleep when idle. The framework includes a comprehensive set of embedded components, featuring a hardware abstraction layer for peripherals like GPIO, SPI, I2C, and UART, alongside a TCP/IP network stack and a USB device stack. It also provides a Bluetooth Low Energy host stack for wireless communication and a bootloader framework t

    Rustasyncdriversembedded
    Voir sur GitHub↗8,813
Voir les 30 alternatives à Libusb→

Questions fréquentes

Que fait libusb/libusb ?

libusb is a cross-platform user-space library that provides a consistent C API for discovering, configuring, and communicating with USB devices from applications. It abstracts operating-system-specific USB driver details behind a single interface that works on Linux, macOS, Windows, and other platforms, enabling developers to write portable USB code without platform-specific knowledge.

Quelles sont les fonctionnalités principales de libusb/libusb ?

Les fonctionnalités principales de libusb/libusb sont : USB Device Communication, USB Endpoint Transfers, Asynchronous USB Transfer Engines, Cross-Platform USB Access, USB, USB Asynchronous Transfers, Synchronous Blocking I/O, USB Synchronous Transfers.

Quelles sont les alternatives open-source à libusb/libusb ?

Les alternatives open-source à libusb/libusb incluent : hathach/tinyusb — TinyUSB. embassy-rs/embassy — Embassy is an asynchronous framework for microcontrollers that provides a runtime for cooperative multitasking. It… blacktop/ipsw — ipsw is a specialized toolkit for iOS firmware analysis, binary reverse engineering, and hardware interaction. It… idescriptor/idescriptor — iDescriptor is a suite of specialized tools for managing, diagnosing, and interacting with iOS devices. It provides a… cnlohr/rawdrawandroid — rawdrawandroid is a framework for building Android applications using C and Make. It provides a native development… microsoft/windows-universal-samples — This repository is a comprehensive collection of reference implementations and sample libraries for the Universal…