18 releases

0.5.3 Sep 27, 2025
0.5.2 Jan 18, 2025
0.5.1 Aug 27, 2024
0.5.0 Jul 26, 2024

#406 in Embedded development

Download history 3/week @ 2025-07-18 3/week @ 2025-07-25 5/week @ 2025-08-15 49/week @ 2025-08-22 53/week @ 2025-08-29 41/week @ 2025-09-05 49/week @ 2025-09-12 40/week @ 2025-09-19 199/week @ 2025-09-26 39/week @ 2025-10-03 26/week @ 2025-10-10 43/week @ 2025-10-17 13/week @ 2025-10-24

83 downloads per month
Used in 5 crates (3 directly)

Apache-2.0

30KB
603 lines

RVideo crates.io page docs.rs page

Real-time video server for embedded apps.

What is RVideo

RVideo is a library which solves the problem of streaming video from embedded computer-vision applications. Many of such are headless and do not require a dedicated interface, however it is often useful (especially for developers) to see what is happening on the device. RVideo provides a simple API to stream video from your embedded application to a remote client.

How does it work

Unlike other streaming solutions, the goal of RVideo is to provide a minimal overhead for an embedded application it is included into:

  • Frames are always sent as-is, usually in RAW formats (it is more than enough for most debugging use-cases)

  • All frames, not received by a client in time, are dropped

  • No any buffering is performed on the server side

  • Real-time-safe code is used to minimize the impact on the main application

Clients

RVideo streams can be received with clients provided by crate. For ready-to-use UI, see the rvideo-view crate.

Locking safety

By default, the server uses parking_lot for locking. For real-time applications, the following features are available:

  • locking-rt - use parking_lot_rt crate which is a spin-free fork of parking_lot.

  • locking-rt-safe - use rtsc priority-inheritance locking, which is not affected by priority inversion (Linux only).

Note: to switch locking policy, disable the crate default features.

About

RVideo is a part of RoboPLC project.

Dependencies

~4–15MB
~153K SLoC