{"id":13667902,"url":"https://github.com/Nugine/rdma","last_synced_at":"2025-04-26T18:30:45.894Z","repository":{"id":39640311,"uuid":"495042369","full_name":"Nugine/rdma","owner":"Nugine","description":"Low-level RDMA API","archived":false,"fork":false,"pushed_at":"2023-10-22T06:47:00.000Z","size":578,"stargazers_count":34,"open_issues_count":3,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-11T11:21:01.057Z","etag":null,"topics":["rdma","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nugine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-22T11:37:57.000Z","updated_at":"2025-04-02T14:29:40.000Z","dependencies_parsed_at":"2023-02-15T20:35:23.032Z","dependency_job_id":"a215737f-38c0-48fa-b516-d30c9a0a7839","html_url":"https://github.com/Nugine/rdma","commit_stats":{"total_commits":264,"total_committers":1,"mean_commits":264.0,"dds":0.0,"last_synced_commit":"4770d0e5e546e49e015c088d548f8eba07a5d7e7"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nugine%2Frdma","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nugine%2Frdma/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nugine%2Frdma/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nugine%2Frdma/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nugine","download_url":"https://codeload.github.com/Nugine/rdma/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251035137,"owners_count":21526309,"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":["rdma","rust"],"created_at":"2024-08-02T07:00:54.031Z","updated_at":"2025-04-26T18:30:42.289Z","avatar_url":"https://github.com/Nugine.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# rdma\n\n[![Latest Version]][crates.io]\n[![Documentation]][docs.rs] \n![License]\n\nLow-level RDMA API.\n\n[crates.io]: https://crates.io/crates/rdma\n[Latest Version]: https://img.shields.io/crates/v/rdma.svg\n[Documentation]: https://docs.rs/rdma/badge.svg\n[docs.rs]: https://docs.rs/rdma\n[License]: https://img.shields.io/crates/l/rdma.svg\n\n# Environment\n\nThis crate requires the latest [rdma-core](https://github.com/linux-rdma/rdma-core) installation.\n\nPlease make sure the following commands work:\n\n```bash\n$ pkg-config --modversion libibverbs\n1.14.41.0\n$ pkg-config --modversion librdmacm\n1.3.41.0\n```\n\nThe output also shows the minimum required versions.\n\n# Develop\n\n## Examples\n\nAdd a Soft-RoCE device:\n\n```bash\nsudo rdma link add rxe0 type rxe netdev ens33\n```\n\n`rxe0` is the RDMA device name. You can name it whatever you want. `ens33` is the name of a network device. The name of the network device may be different. You can see it by running command `ifconfig`. \n\nThere is a tutorial for Chinese users: \u003chttps://zhuanlan.zhihu.com/p/361740115\u003e.\n\nPlease install the tool [just](https://github.com/casey/just) if you don't have it.\n\nInstall the examples:\n\n```bash\njust install-examples\n```\n\nRun the example `rdma-devices`:\n\n```\n$ rdma-devices\n| name | guid             |\n| ---- | ---------------- |\n| rxe0 | 26418cfffe021df9 |\n```\n\nRun the example `rdma-pingpong`:\n\n+ RC service\n    + server side\n        ```bash\n        rdma-pingpong rc\n        ```\n    + client side\n        ```bash\n        rdma-pingpong rc 127.0.0.1\n        ```\n\n+ UD service\n    + server side\n        ```bash\n        rdma-pingpong ud\n        ```\n    + client side\n        ```bash\n        rdma-pingpong ud 127.0.0.1\n        ```\n\nRun the benchmarks:\n\n```bash\njust bench-pingpong-rc\njust bench-pingpong-ud\n```\n\nRun the example `rdma-async`:\n\n```bash\nrdma-async-rpc\n```\n\n## Memory Management\n\nAll the APIs related with raw memory are unsafe.\n\nWe are exploring how to provide a safe and easy way to manage memory in RDMA.\n\nThe example [rdma-async](examples/rdma-async/src/bin/rdma-async-rpc.rs) may give you inspiration.\n\n## Resource Management\n\nThe RDMA resources are managed by reference counting.\n\nThe graph below shows the relations between resources.\n\n![docs/ref/ref.svg](docs/ref/ref.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNugine%2Frdma","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNugine%2Frdma","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNugine%2Frdma/lists"}