{"id":21257514,"url":"https://github.com/cympletech/tdn_permission","last_synced_at":"2025-07-27T22:34:59.650Z","repository":{"id":57669380,"uuid":"231005744","full_name":"CympleTech/tdn_permission","owner":"CympleTech","description":"A pluggable library for TDN, include permissioned \u0026 permissionless group algorithm.","archived":false,"fork":false,"pushed_at":"2021-01-23T09:38:48.000Z","size":122,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-08T10:49:10.159Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CympleTech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-31T01:41:27.000Z","updated_at":"2022-05-08T21:45:46.000Z","dependencies_parsed_at":"2022-09-26T20:40:53.733Z","dependency_job_id":null,"html_url":"https://github.com/CympleTech/tdn_permission","commit_stats":null,"previous_names":["cypherlink/tdn-permission"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CympleTech/tdn_permission","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CympleTech%2Ftdn_permission","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CympleTech%2Ftdn_permission/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CympleTech%2Ftdn_permission/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CympleTech%2Ftdn_permission/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CympleTech","download_url":"https://codeload.github.com/CympleTech/tdn_permission/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CympleTech%2Ftdn_permission/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267436726,"owners_count":24086898,"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","status":"online","status_checked_at":"2025-07-27T02:00:11.917Z","response_time":82,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-21T04:04:03.866Z","updated_at":"2025-07-27T22:34:59.622Z","avatar_url":"https://github.com/CympleTech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TDN-Permission\n*Multiple permissioned / permissionless libraries for TDN.*\n\n## Use is simple\n```rust\nuse tdn::prelude::start;\nuse tdn_permission::PermissionlessGroup;\nuse tdn_types::message::{GroupReceiveMessage, ReceiveMessage};\n\nfn main() {\n    smol::block_on(async {\n        let mut group = PermissionlessGroup::default();\n        let (_peer_addr, send, recv) = start().await.unwrap();\n\n        while let Ok(message) = recv.recv().await {\n            match message {\n                ReceiveMessage::Group(GroupReceiveMessage::PeerJoin(peer, addr, data)) =\u003e {\n                    group.join(peer, addr, data, send.clone()).await;\n                }\n                ReceiveMessage::Group(GroupReceiveMessage::PeerJoinResult(peer, is_ok, result)) =\u003e {\n                    group.join_result(peer, is_ok, result);\n                }\n                ReceiveMessage::Group(GroupReceiveMessage::PeerLeave(peer)) =\u003e {\n                    group.leave(\u0026peer);\n                }\n                _ =\u003e {\n                    println!(\"recv: {:?}\", message);\n                }\n            }\n        }\n    });\n}\n\n```\n\n## Test Examples\n- Test Public: `cargo run --example permissionless`\n\n- Test CA permissioned: `cargo run --example ca_permissioned`\n\n- Test Vote Permissioned: `cargo run --example vote_permissioned`\n\n## Features\n- Permissionless (Public)\n- CA Permissioned (Trusted CA)\n- Vote Permissioned (Voting)\n\n## License\n\nThis project is licensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n   http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   http://opensource.org/licenses/MIT)\n\nat your option.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcympletech%2Ftdn_permission","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcympletech%2Ftdn_permission","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcympletech%2Ftdn_permission/lists"}