{"id":58334,"library":"usbd-serial","title":"USBD Serial","description":"USB CDC-ACM serial port class for use with the usb-device library, enabling USB serial communication on embedded devices.","status":"active","version":"0.2.2","language":"rust","source_language":null,"source_url":"https://github.com/mvirkkunen/usbd-serial","tags":["usb","serial","embedded","cdc-acm","communication"],"install":[{"cmd":"# Cargo.toml\n[dependencies]\nusbd-serial = \"0.2.2\"","lang":"toml","label":"Cargo.toml"},{"cmd":"cargo add usbd-serial","lang":"bash","label":"cargo add"}],"dependencies":[],"imports":[{"symbol":"SerialPort","correct":"use usbd_serial::SerialPort;"}],"quickstart":{"code":"use usbd_serial::SerialPort;\nuse usb_device::prelude::*;\n\nfn main() {\n    let usb_bus = UsbBus::new();\n    let mut serial = SerialPort::new(&usb_bus);\n    let mut usb_dev = UsbDeviceBuilder::new(&usb_bus, UsbVidPid(0x16c0, 0x27dd))\n        .manufacturer(\"Fake company\")\n        .product(\"Serial port\")\n        .serial_number(\"TEST\")\n        .device_class(2) // CDC\n        .build();\n    loop {\n        if !usb_dev.poll(&mut [&mut serial]) {\n            continue;\n        }\n        let mut buf = [0u8; 64];\n        if let Ok(count) = serial.read(&mut buf) {\n            serial.write(&buf[..count]).ok();\n        }\n    }\n}","lang":"rust","description":"Sets up a USB CDC-ACM serial port that echoes received data."},"warnings":[{"fix":"Add usb-device and a HAL crate like stm32-usbd or nrf-usbd to your dependencies.","message":"Requires a USB device HAL implementation (e.g., usb-device) and a specific microcontroller support crate.","severity":"gotcha","affected_versions":">=0.2.0"}],"env_vars":null,"search_vec":"'acm':6,30 'cdc':5,29 'cdc-acm':4,28 'class':9 'communic':21,31 'devic':16,24 'embed':23,27 'enabl':18 'librari':17 'port':8 'serial':2,7,20,26 'usb':3,15,19,25 'usb-devic':14 'usbd':1 'use':11","created_at":"2026-06-16T16:20:02.557102+00:00","updated_at":"2026-06-16T16:20:02.557102+00:00","problems":[],"ecosystem":"crates","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/mvirkkunen/usbd-serial","github":"https://github.com/mvirkkunen/usbd-serial","docs":"https://docs.rs/usbd-serial/","changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["networking"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-16","next_check":"2026-12-13","install_tag":null}}