{"id":21951951,"url":"https://github.com/yourarj/rust-dpdk-hello-world","last_synced_at":"2025-03-22T18:11:40.294Z","repository":{"id":223033029,"uuid":"759141387","full_name":"yourarj/rust-dpdk-hello-world","owner":"yourarj","description":"rust-intel-dpdk hello world","archived":false,"fork":false,"pushed_at":"2024-02-17T19:09:28.000Z","size":7,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-03T22:39:54.859Z","etag":null,"topics":["dpdk","hello-world","rust","rust-lang","v22-11"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yourarj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-17T18:58:58.000Z","updated_at":"2025-01-24T09:57:50.000Z","dependencies_parsed_at":"2024-02-17T20:25:55.670Z","dependency_job_id":"90520fa4-b865-41e2-ae45-12f800b52dc5","html_url":"https://github.com/yourarj/rust-dpdk-hello-world","commit_stats":null,"previous_names":["yourarj/rust-dpdk-hello-world"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yourarj%2Frust-dpdk-hello-world","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yourarj%2Frust-dpdk-hello-world/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yourarj%2Frust-dpdk-hello-world/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yourarj%2Frust-dpdk-hello-world/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yourarj","download_url":"https://codeload.github.com/yourarj/rust-dpdk-hello-world/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244999402,"owners_count":20544873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dpdk","hello-world","rust","rust-lang","v22-11"],"created_at":"2024-11-29T06:18:43.334Z","updated_at":"2025-03-22T18:11:40.268Z","avatar_url":"https://github.com/yourarj.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust Intel DPDK Hello World\n\nComplete Guide of Building RUST DPDK Hello World.\n\nI've tried to cover from all the basics\n\n## Dev Environment\n[If you have DPDK Compliant NIC you can skip this]\n\nA virtual box VM with following attributes was used to build and run the example due NIC dep.\n\n- `Ubuntu 22.04`\n- `4 vcpu`\n- `8gb RAM`\n- `NIC: default adapter[NAT]`\n- `NIC: Intel PRO/1000 MT Desktop (82540EM) [bridged]`\n## Installation\n\n### 1. Installation of prerequisites\n```sh\nsudo apt install \\\nbuild-essential \\\nmeson \\\npython3-pyelftools \\\nlibnuma-dev \\\npkgconf \\\nlibclang-dev \\\nclang \\\nllvm-dev \\\nlibbsd-dev\n```\n\n### 2. DPDK Installation\n```sh\ntar xf dpdk-\u003cversion\u003e.tar.gz # or checkout specific version \ncd dpdk\nmeson setup -Dplatform=native build\ncd build\nninja\nmeson install #sudo \nldconfig #sudo\n```\n\n### 3. Enable Hugepages\n\n```sh\n\n  mkdir -p /dev/hugepages\n  mountpoint -q /dev/hugepages || mount -t hugetlbfs nodev /dev/hugepages\n  echo 64 \u003e /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages # prefer to run with root\n\n```\n\n### 4. Install Rust\n```sh\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\n### 5. Create new rust project\n```sh\ncargo new demo-rust-dpdk-hello-world\n```\n\n### 6. Add DPDK wrapper dependencies\n```toml\n[dependencies]\n# rust dpdk from github\nrust-dpdk = { git = \"https://github.com/ANLAB-KAIST/rust-dpdk.git\", package = \"rust-dpdk-sys\" }\n```\n\n### 7. Building project\n```sh\ncargo build #--release\n```\n\n### 8. Running App\n```console\n$dpdk-user@vbox: sudo ./target/release/demo-rust-dpdk-hello-world\nEAL: Detected CPU lcores: 4\nEAL: Detected NUMA nodes: 1\nEAL: Detected shared linkage of DPDK\nEAL: Multi-process socket /var/run/dpdk/rte/mp_socket\nEAL: Selected IOVA mode 'PA'\nEAL: VFIO support initialized\nTELEMETRY: No legacy callbacks, legacy socket not created\nhello from core 1\nhello from core 2\nhello from core 3\nhello from core 0\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyourarj%2Frust-dpdk-hello-world","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyourarj%2Frust-dpdk-hello-world","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyourarj%2Frust-dpdk-hello-world/lists"}