Internship Projects/Mentors


Title

Rust API bindings for fd.io VPP

Status

APPROVED BY TSC

Difficulty

MEDIUM


Description 

Rust is a modern high performance systems language.
VPP is a high performance data plane. To date there is no Rust API bindings for VPP yet.

This internship would change that situation and provide the community with a way to very effectively use VPP from a modern ans safe language.

Having a high performance VPP API bindings library would be extremely helpful for more thorough and effective testing and better integration ppportunities.

Additional Information


https://gist.github.com/ayourtch/37107fc1e605d7d14b1c676b25a989f5 - Link to a work-in-progress roadmap


Learning Objectives

Study and analyze the existing bindings with other languages.

Identify the areas of improvement

Learn and practice the capabilities provided by Rust to make the bindings ergonomic and maintainable.


Expected Outcome

Progress or completion of one or the several items of the roadmap as enclosed. 

Relation to LF Networking 

VPP FD.io 

Education Level

n/a

Skills

Rust, reading Python and Golang

Future plans

After the project is completed, it will be maintained as another means of interfacing with VPP and potentially used as another test language.

Preferred Hours and Length of Internship

Mentor(s) Names and Contact Info

Andrew Yourtchenko (ayourtch@gmail.com)