{"id":19179401,"url":"https://github.com/rssblue/v4v","last_synced_at":"2026-02-05T09:40:17.483Z","repository":{"id":253442794,"uuid":"841372483","full_name":"rssblue/v4v","owner":"rssblue","description":"V4V calculations and transactions for Podcasting 2.0","archived":false,"fork":false,"pushed_at":"2024-08-31T19:18:53.000Z","size":70,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-14T22:51:27.507Z","etag":null,"topics":["podcasting20","rss","v4v"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/v4v","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/rssblue.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-08-12T09:23:01.000Z","updated_at":"2024-08-31T19:18:55.000Z","dependencies_parsed_at":"2024-08-16T19:12:40.162Z","dependency_job_id":"cddfa836-10c2-4981-928e-1c7a8b44f07f","html_url":"https://github.com/rssblue/v4v","commit_stats":null,"previous_names":["rssblue/v4v"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssblue%2Fv4v","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssblue%2Fv4v/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssblue%2Fv4v/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rssblue%2Fv4v/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rssblue","download_url":"https://codeload.github.com/rssblue/v4v/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249845517,"owners_count":21333728,"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":["podcasting20","rss","v4v"],"created_at":"2024-11-09T10:43:01.267Z","updated_at":"2026-02-05T09:40:12.452Z","avatar_url":"https://github.com/rssblue.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"A set of helper functions for dealing with value-for-value (V4V) calculations and transactions.\n\nModules include\n\n- [pc20] for Podcasting 2.0-specific functions, including those related to [sat calculations](pc20::calc), [V4V payments](pc20::payments), and [sat forwarding](pc20::forwarding).\n- [alby] for interacting with [Alby](https://getalby.com)'s API.\n\nCheck out [docs.rs](https://docs.rs/v4v) for all available functions.\n\n## Example\n\n```rust\nlet splits = vec![1, 98, 1];\nlet total_sats = 10;\n// The crate ensures that\n// - even after rounding, the total number of sats is preserved\n// - if possible, everyone gets at least 1 sat (and thus their own TLV record)\nassert_eq!(v4v::pc20::calc::compute_sat_recipients(\u0026splits, total_sats), vec![1, 8, 1]);\n```\n\n## Install\n\n```text\ncargo add v4v\n```\n\n## Contribute\n\nPlease feel free to contribute by submitting a PR on [GitHub](https://github.com/rssblue/v4v).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssblue%2Fv4v","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frssblue%2Fv4v","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frssblue%2Fv4v/lists"}