# Libserard -- a potential alternative to libcanard that implements UAVCAN/serial

**URL:** <https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213>\
**Category:** Applications & Usage\
**Created:** [April 25, 2021, 2:50pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213 "2021-04-25T14:50:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [April 25, 2021, 2:50pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/1 "2021-04-25T14:50:28Z")

</div>

I am currently working on a deeply embedded C++ application that requires simultaneous connectivity via UAVCAN/CAN and UAVCAN/serial. Since we don’t have libuavcan yet, there is at the moment no readily available solution to implement UAVCAN/serial on an embedded target. Therefore, I am considering creating a very simple library that will implement UAVCAN/serial using virtually the same API that is provided by libcanard. I expect it to be only ~500 LLoC large because there are no multi-frame transfers to worry about (they account for most of the complexity hidden in libcanard).

I am planning to name it `"libcanard".replace("can", "ser") == ` **libserard**.

---

<div class="post-metadata">

**Author:** ![davidbitton](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/davidbitton/32/103_2.png) [@davidbitton](https://forum.opencyphal.org/u/davidbitton)\
**Post date:** [April 28, 2021, 1:26pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/2 "2021-04-28T13:26:45Z")

</div>

it’s a knife lib because it’s serrated!

---

<div class="post-metadata">

**Author:** ![hugo](https://forum.opencyphal.org/letter_avatar_proxy/v4/letter/h/b38774/32.png) [@hugo](https://forum.opencyphal.org/u/hugo)\
**Post date:** [May 1, 2021, 10:21am UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/3 "2021-05-01T10:21:23Z")

</div>

When do you expect to have a github repository available?

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [May 1, 2021, 7:33pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/4 "2021-05-01T19:33:28Z")

</div>

Any week now.

---

<div class="post-metadata">

**Author:** ![benjaminh](https://forum.opencyphal.org/letter_avatar_proxy/v4/letter/b/77aa72/32.png) [@benjaminh](https://forum.opencyphal.org/u/benjaminh)\
**Post date:** [September 24, 2021, 10:30am UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/5 "2021-09-24T10:30:45Z")

</div>

Sounds very useful! Do you have already a github repository available or is it still under construction?

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [September 24, 2021, 3:22pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/6 "2021-09-24T15:22:51Z")

</div>

Still under construction, unfortunately.

---

<div class="post-metadata">

**Author:** ![fathom](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/fathom/32/1694_2.png) [@fathom](https://forum.opencyphal.org/u/fathom)\
**Post date:** [April 25, 2025, 4:29pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/7 "2025-04-25T16:29:42Z")

</div>

Apologize for the necro, but is there anything more current on a c-based serial implementation? I’m considering using OpenCyphal in a point-to-point network for talking to devices (that normally use CAN) over a serial port from a host PC for simplified testing.

---

<div class="post-metadata">

**Author:** ![pavel.kirienko](https://forum.opencyphal.org/user_avatar/forum.opencyphal.org/pavel.kirienko/32/9_2.png) [@pavel.kirienko](https://forum.opencyphal.org/u/pavel.kirienko)\
**Post date:** [April 26, 2025, 3:11pm UTC](https://forum.opencyphal.org/t/libserard-a-potential-alternative-to-libcanard-that-implements-uavcan-serial/1213/8 "2025-04-26T15:11:13Z")

</div>

Hey @fathom , please see here: [About Cyphal serial transport and libserard - #2 by pavel.kirienko](https://forum.opencyphal.org/t/about-cyphal-serial-transport-and-libserard/2226/2)
