{"id":19079235,"url":"https://github.com/weavevm/rusty-ao","last_synced_at":"2025-04-30T05:41:38.602Z","repository":{"id":257817203,"uuid":"868992867","full_name":"weaveVM/rusty-ao","owner":"weaveVM","description":"A blazingly fast client for AO written in Rust.","archived":false,"fork":false,"pushed_at":"2025-04-18T16:46:14.000Z","size":2796,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-19T05:27:29.836Z","etag":null,"topics":["ao","rust-sdk"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/rusty_ao","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/weaveVM.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-10-07T14:34:29.000Z","updated_at":"2025-04-18T16:45:49.000Z","dependencies_parsed_at":"2024-10-09T22:10:35.376Z","dependency_job_id":"0a4886d1-7746-4c5e-b385-25c85d6c5315","html_url":"https://github.com/weaveVM/rusty-ao","commit_stats":null,"previous_names":["weavevm/rusty-ao"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveVM%2Frusty-ao","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveVM%2Frusty-ao/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveVM%2Frusty-ao/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weaveVM%2Frusty-ao/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weaveVM","download_url":"https://codeload.github.com/weaveVM/rusty-ao/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251651220,"owners_count":21621702,"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":["ao","rust-sdk"],"created_at":"2024-11-09T02:13:54.867Z","updated_at":"2025-04-30T05:41:38.595Z","avatar_url":"https://github.com/weaveVM.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://wvm.dev\"\u003e\n    \u003cimg src=\"./assets/banner.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## About\nA blazingly fast client for [AO](https://ao.arweave.dev) written in Rust.\n\n## Install\n\n```bash\ncargo add rusty_ao\n```\n\nAlternatively, in your `Cargo.toml`, add:\n\n```Cargo.toml\n[dependencies]\nrusty_ao = { git = \"https://github.com/weaveVM/rusty-ao.git\", branch = \"main\" }\n```\n\n## Usage Examples: HyperBEAM \n\n### Init HyperBEAM client\n\n```rust\nuse rusty_ao::hyperbeam::Hyperbeam;\n\npub async fn init_hb() {\n    let hb = Hyperbeam::new(\n        \"https://tee-1.forward.computer\".to_string(),\n        SignerTypes::Arweave(\"test_key.json\".to_string()),\n    )\n    .unwrap();\n}\n```\n\n### Get a process last computed message state\n\nReturns the `/Results` key of the latest computed message -- `~process@1.0`\n\n```rust\nlet process_id = \"oQZQd1-MztVOxODecwrxFR9UGUnsrX5wGseMJ9iSH38\";\nlet state = hb.process_now(process_id.to_string()).await.unwrap();\n```\n\n### Get a HyperBEAM node info\n\nReturns the JSON serialized node info -- `~meta@1.0/info/serialize~json@1.0`\n\n```rust\nlet info = hb.meta_info().await.unwrap()\n```\n\n### Get a HyperBEAM node routing config\n\nReturns the JSON serialized node routing configuration -- `/~router@1.0/routes/serialize~json@1.0`\n\n```rust\nlet routes = hb.router_routes().await.unwrap()\n```\n\n### Get a HyperBEAM hyperbuddy metrics\n\nReturns the hyperbuddy node metrics data -- `/~hyperbuddy@1.0/index/~hyperbuddy@1.0/metrics`\n\n```rust\nlet hyperbuddy = hb.hyperbuddy_metrics().await.unwrap()\n```\n\n## Usage Examples: Legacy \n\n### Init an AO client\n\n```rust\n// import the crate\nuse rusty_ao::ao::Legacy;\n// Initialize an AO client \nlet ao = Legacy::new(\n  \"https://mu.ao-testnet.xyz\".to_string(),\n  \"https://cu.ao-testnet.xyz\".to_string(),\n  SignerTypes::Arweave(\"test_key.json\".to_string()),\n  )\n  .unwrap();\n```\n\nor using the `default_init` method\n\n```rust\nlet ao = Legacy::default_init(SignerTypes::Arweave(\"test_key.json\".to_string()))\n  .unwrap();\n```\n### Dry run an AO process message call\n\n```rust\n// let ao = ...init AO...\n\nlet res = ao\n    .dry_run(\n        \"xU9zFkq3X2ZQ6olwNVvr1vUWIjc3kXTWr7xKQD6dh10\".to_string(),\n        \"\".to_string(),\n        vec![Tag {\n            name: \"Action\".to_string(),\n            value: \"Info\".to_string(),\n        }],\n    )\n    .await;\n\nassert!(res.is_ok());\nprintln!(\"{}\", serde_json::to_string(\u0026res.unwrap()).unwrap());\n```\n\n### Spawn a new process\n\n```rust\n// let ao = ...init AO...\n\nlet res = ao\n    .spawn(\n        \"test1\".to_string(),\n        \"rusty-ao\".to_string(),\n        DEFAULT_MODULE.to_string(),\n        DEFAULT_SCHEDULER.to_string(),\n        vec![],\n    )\n    .await;\n\nprintln!(\"{:?}\", res);\nassert!(res.is_ok());\nprintln!(\"{}\", serde_json::to_string(\u0026res.unwrap()).unwrap());\n```\n### Request CU get process result\n\n```rust\n// let ao = ...init AO...\n\nlet res = ao\n    .get(\n        \"ya9XinY0qXeYyf7HXANqzOiKns8yiXZoDtFqUMXkX0Q\".to_string(),\n        \"5JtjkYy1hk0Zce5mP6gDWIOdt9rCSQAFX-K9jZnqniw\".to_string(),\n    )\n    .await;\n\nprintln!(\"{:?}\", res);\nassert!(res.is_ok());\nprintln!(\"{}\", serde_json::to_string(\u0026res.unwrap()).unwrap());\n```\n\n## HyperBEAM REST API\n\nThe HyperBEAM REST API server provides access to HyperBEAM functionality built on top of the `hyperbeam.rs`. The following endpoints are available under [hb.load.rs](https://hb.load.rs).\n\nTo add your HyperBEAM node metadata to the server's compiled list, open a PR adding it to [compiled_node_list.json](./compiled_node_list.json)\n\n\n### Node Info\n\nRetrieves a hb node information --  `~meta@1.0/info/serialize~json@1.0`\n\n```bash\nGET /node/{address}/info\n```\n\n### Node Routes\n\nRetrieves the routing configuration for a hb node using its address -- `~router@1.0/routes/serialize~json@1.0`\n\n```bash\nGET /node/{address}/routes\n```\n\n### Node Metrics Overview\n\nAn endpoint to render a node's metrics -- `~hyperbuddy@1.0/index/~hyperbuddy@1.0/metrics`\n\n```bash\nGET /node/{address}\n```\n\n## Credits\n- goao: Golang SDK for interacting with ao processes. [link](https://github.com/permadao/goao)\n- aoconnect: The `aoconnect` library provides an abstraction for spawning, evaluating, and interacting with ao Processes. [link](https://github.com/permaweb/ao)\n\n## License\nThis project is licensed under the [MIT License](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweavevm%2Frusty-ao","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweavevm%2Frusty-ao","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweavevm%2Frusty-ao/lists"}