{"id":15133928,"url":"https://github.com/awaitlink/rvk","last_synced_at":"2025-11-17T10:01:14.542Z","repository":{"id":32476322,"uuid":"134960321","full_name":"awaitlink/rvk","owner":"awaitlink","description":":package: A set of crates for easy access to the VK (VKontakte) API","archived":false,"fork":false,"pushed_at":"2022-06-20T10:05:59.000Z","size":521,"stargazers_count":24,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-22T01:25:28.275Z","etag":null,"topics":["api","async","await","methods","objects","rust","rust-crate","vk","vk-api","vk-sdk"],"latest_commit_sha":null,"homepage":"https://docs.rs/rvk","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/awaitlink.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-26T12:41:37.000Z","updated_at":"2024-10-12T10:44:49.000Z","dependencies_parsed_at":"2022-07-30T21:18:05.325Z","dependency_job_id":null,"html_url":"https://github.com/awaitlink/rvk","commit_stats":null,"previous_names":["awaitlink/rvk","u32i64/rvk"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/awaitlink/rvk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awaitlink%2Frvk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awaitlink%2Frvk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awaitlink%2Frvk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awaitlink%2Frvk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awaitlink","download_url":"https://codeload.github.com/awaitlink/rvk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awaitlink%2Frvk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284861038,"owners_count":27075155,"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-11-17T02:00:06.431Z","response_time":55,"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":["api","async","await","methods","objects","rust","rust-crate","vk","vk-api","vk-sdk"],"created_at":"2024-09-26T05:01:40.817Z","updated_at":"2025-11-17T10:01:14.486Z","avatar_url":"https://github.com/awaitlink.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `rvk`\n\n\u003e A set of crates to be able to easily access VK (VKontakte) API in Rust.\n\nThe combined changelog for all crates is available [here](https://github.com/u32i64/rvk/blob/master/CHANGELOG.md).\n\n## Crates\n\n- [`rvk`](https://crates.io/crates/rvk) ([docs](https://docs.rs/rvk)) — simple crate for accessing VK API (using `async`/`await`);\n- [`rvk_methods`](https://crates.io/crates/rvk_methods) ([docs](https://docs.rs/rvk_methods)) — provides VK API [methods](https://vk.com/dev/methods) to avoid the need to specify them as strings, depends on `rvk` to call the methods;\n- [`rvk_objects`](https://crates.io/crates/rvk_objects) ([docs](https://docs.rs/rvk_objects)) — represents various [objects](https://vk.com/dev/objects) that are returned as JSON by the VK API.\n\nNote that for `rvk_methods` and `rvk_objects`, the supported versions of the VK API may be different.\nConsult the `API_VERSION` constant in these crates to learn which versions they support.\n\n## Usage\nAdd the necessary dependencies to your project. For example, to use all 3:\n\n\u003csub\u003e`Cargo.toml`\u003c/sub\u003e\n```toml\n[dependencies]\nrvk = \"0.23\"\nrvk_methods = \"0.1\"\nrvk_objects = \"0.1\"\n```\n\nNow you can take a look at the documentation (linked above for each crate) to learn more about the available functions.\n\n## Example using all 3 crates\n\nTo use this example, you will **also** need the [`tokio`](https://crates.io/tokio) crate for the `tokio::main` attribute proc macro.\n\n### `Cargo.toml`\n```toml\n[dependencies]\ntokio = { version = \"1.0\", features = [\"full\"] }\n```\n\n### `main.rs`\n```rust\nuse rvk::Params;\nuse rvk_methods::users;\nuse rvk_objects::user::User;\n\n#[tokio::main]\nasync fn main() {\n    // Create an API client that uses the API version supported by `rvk_methods`.\n    let api = rvk_methods::supported_api_client(\"your_access_token\");\n\n    // A HashMap to store parameters.\n    let mut params = Params::new();\n    params.insert(\"user_ids\".into(), \"1\".into());\n\n    // Use a type from `rvk_objects` as the result type.\n    let res = users::get::\u003cVec\u003cUser\u003e\u003e(\u0026api, params).await;\n\n    match res {\n        Ok(users) =\u003e {\n            let user: \u0026User = \u0026users[0];\n\n            println!(\n                \"User #{} is {} {}.\",\n                user.id, user.first_name, user.last_name\n            );\n        }\n        Err(e) =\u003e println!(\"{}\", e),\n    };\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawaitlink%2Frvk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawaitlink%2Frvk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawaitlink%2Frvk/lists"}