Internship Projects/Mentors



Title

Rust API bindings for fd.io VPP

Status

Difficulty

Select a difficulty level and delete the others (e.g. code development would be considered less challenging than research-focused)



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

Full-time (40 hours a week for 12 weeks during the summer) or Part-time (20 hours a week for 24 weeks starting in summer and ending in fall)

Mentor(s) Names and Contact Info

Name, email, Chat ID, company affiliation (optional)

Andrew Yourtchenko (ayourtch@gmail.com)