Coder Social home page Coder Social logo

rust-dpdk's Introduction

rust-dpdk

Build Status

Tested with https://github.com/rust-lang/rust-bindgen v0.65. Tested with https://github.com/DPDK/dpdk.git v22.11.

Goals

There are other rust-dpdk implementations and you may choose most proper implementation to your purpose. (https://github.com/flier/rust-dpdk, https://github.com/netsys/netbricks) This library is built for following design goals.

  1. Minimize hand-written binding code.
  2. Do not include bindgen's output in this repository.
  3. Statically link DPDK libraries instead of using shared libraries.
Library No bindgen output Static linking Inline function wrappers Prevent PMD opt-out
flier bindgen snapshot O O (manual) X
netbricks manual FFI X X O (via dynload)
ANLAB ondemand creation O O (automatic) O

Prerequisites

First, this library depends on Intel Data Plane Development Kit (DPDK). Refer to official DPDK document to install DPDK (http://doc.dpdk.org/guides/linux_gsg/index.html).

Here, we include basic instructions to build DPDK and use this library.

Commonly, following packages are required to build DPDK.

apt-get install -y curl git build-essential libnuma-dev meson # To download and build DPDK
apt-get install -y linux-headers-amd64 # To build kernel drivers
apt-get install -y libclang-dev clang llvm-dev # To analyze DPDK headers and create bindings

DPDK can be installed by following commands:

meson build
ninja -C build
ninja -C build install # sudo required

Since v20.11, kernel drivers are moved to https://git.dpdk.org/dpdk-kmods/. If your NIC requires kernel drivers, they are found at the above link.

Now add rust-dpdk to your project's Cargo.toml and use it!

[dependencies]
rust-dpdk = { git = "https://github.com/ANLAB-KAIST/rust-dpdk.git" }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.