2 unstable releases

0.2.0 Dec 15, 2023
0.1.0 Jan 19, 2023

#554 in Asynchronous

Download history 3/week @ 2023-12-22 22/week @ 2023-12-29 2/week @ 2024-01-12 38/week @ 2024-01-19 14/week @ 2024-02-16 23/week @ 2024-02-23 12/week @ 2024-03-01 9/week @ 2024-03-08 7/week @ 2024-03-15 8/week @ 2024-03-22 62/week @ 2024-03-29 36/week @ 2024-04-05

113 downloads per month
Used in switchboard

Apache-2.0

6KB
115 lines

rustcommon

rustcommon is a collection of common libraries we use in our Rust projects. This includes datastructures, logging, metrics, timers, and ratelimiting.

Overview

rustcommon is a workspace repository which contains several crates (libraries) which act as foundational libraries for other Rust projects, such as Pelikan, rpc-perf, and Rezolus.

Each crate within this repository contains its own readme and changelog detailing the purpose and history of the library.

Getting Started

Building

rustcommon is built with the standard Rust toolchain which can be installed and managed via rustup or by following the directions on the Rust website.

Clone and build rustcommon from source

git clone https://github.com/pelikan-io/rustcommon
cd rustcommon

# run tests
cargo test --all

Support

Create a new issue on GitHub.

Authors

A full list of contributors can be found on GitHub.


lib.rs:

Provides a Waker trait to allow using the Waker from mio or a provided Waker that uses eventfd directly (supported only on linux) interchangably.

This is particularly useful in cases where some struct (such as a queue) may be used with either mio-based event loops, or with io_uring. The Waker provided by mio is not directly usable in io_uring based code due to the fact that it must be registered to an event loop (such as epoll).

Dependencies

~0.3–9.5MB
~61K SLoC