{"id":25063841,"url":"https://github.com/pacatro/subnet","last_synced_at":"2025-04-14T17:53:38.098Z","repository":{"id":219104297,"uuid":"748178847","full_name":"Pacatro/subnet","owner":"Pacatro","description":"A library to create IPv4 subnetworks based on a given address and the number of hosts you want to connect.","archived":false,"fork":false,"pushed_at":"2024-03-04T15:52:36.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T06:23:37.110Z","etag":null,"topics":["network","rust","subnetworks"],"latest_commit_sha":null,"homepage":"https://docs.rs/subnet/0.1.0/subnet/","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/Pacatro.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,"publiccode":null,"codemeta":null}},"created_at":"2024-01-25T12:48:16.000Z","updated_at":"2024-07-12T22:14:24.000Z","dependencies_parsed_at":"2025-02-06T18:54:18.351Z","dependency_job_id":"e551e88d-d755-436b-b73b-91a040953f29","html_url":"https://github.com/Pacatro/subnet","commit_stats":null,"previous_names":["pacatro/subnet"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pacatro%2Fsubnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pacatro%2Fsubnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pacatro%2Fsubnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pacatro%2Fsubnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pacatro","download_url":"https://codeload.github.com/Pacatro/subnet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248454009,"owners_count":21106376,"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":["network","rust","subnetworks"],"created_at":"2025-02-06T18:54:10.959Z","updated_at":"2025-04-14T17:53:38.059Z","avatar_url":"https://github.com/Pacatro.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Subnet\n\nA library to create IPv4 subnetworks based on a given address and the number of hosts you want to connect.\n\n## ✏️ Usage\n\n```rust\nuse std::net::Ipv4Addr;\n\nuse subnet::{self, SubnetData, SubnetError};\n\nfn main() {\n    let addrs: Ipv4Addr = Ipv4Addr::new(192, 168, 20, 0);\n    let hosts: u32 = 120;\n\n    let subnet: SubnetData = subnet::create_subnet(addrs, hosts).unwrap_or_else(|err: SubnetError| {\n        println!(\"Error: {}\", err);\n        std::process::exit(1);\n    });\n\n    let useful_range: Vec\u003cIpv4Addr\u003e = subnet.useful_range();\n\n    let bin_subnet: String = subnet::ip_to_binary(subnet.subnet_addrs());\n\n    println!(\n        \"Subnet address: {}\\nBin subnet: {}\\nBroadcast: {}\\nMask: /{}\\nUseful range: [{} - {}]\",\n        subnet.subnet_addrs(), bin_subnet, subnet.broadcast(), subnet.mask(), \n        useful_range.first().unwrap(), useful_range.last().unwrap()\n    );\n}\n```\n\n### Output\n\n```terminal\nSubnet address: 192.168.20.0\nBin subnet: 11000000101010000001010000000000\nBroadcast: 192.168.20.127\nMask: /25\nUseful range: [192.168.20.1 - 192.168.20.126]\n```\n\n## 📖 Add the library to your project\n\nYou can add the crate with `cargo add`\n\n```terminal\ncargo add subnet\n```\n\nAlternatively, you can manually add it to your project's Cargo.toml like this:\n\n```toml\n[dependencies]\nsubnet = \"*\" # Change the `*` to the current version\n```\n\n## 💻 Contributing\n\nIf you want to add new features to the libray, you need to follow this steps.\n\nClone this repository\n\n```terminal\ngit clone git@github.com:Pacatro/subnet.git\ncd subnet\n```\n\nRun tests\n\n```terminal\ncargo test\n```\n\nRun example\n\n```terminal\ncargo run --example subnet\n```\n\n## 🔑 License\n\n[MIT](https://opensource.org/license/mit/) - Created by [**P4k0**](https://github.com/Pacatro).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacatro%2Fsubnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpacatro%2Fsubnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpacatro%2Fsubnet/lists"}