{"id":15427452,"url":"https://github.com/pryority/farframe-rs","last_synced_at":"2026-05-03T19:32:30.292Z","repository":{"id":233125191,"uuid":"750097260","full_name":"Pryority/farframe-rs","owner":"Pryority","description":"A Simple Farcaster Frame Server","archived":false,"fork":false,"pushed_at":"2024-01-30T01:18:59.000Z","size":305,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T04:47:59.549Z","etag":null,"topics":["axum","farcaster","farcaster-frames","flyio","rust"],"latest_commit_sha":null,"homepage":"https://farframe-rs.fly.dev","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/Pryority.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}},"created_at":"2024-01-30T01:18:47.000Z","updated_at":"2024-01-30T01:20:44.000Z","dependencies_parsed_at":"2024-04-14T02:11:24.368Z","dependency_job_id":null,"html_url":"https://github.com/Pryority/farframe-rs","commit_stats":null,"previous_names":["pryority/farframe-rs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pryority%2Ffarframe-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pryority%2Ffarframe-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pryority%2Ffarframe-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pryority%2Ffarframe-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pryority","download_url":"https://codeload.github.com/Pryority/farframe-rs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245972670,"owners_count":20702721,"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":["axum","farcaster","farcaster-frames","flyio","rust"],"created_at":"2024-10-01T18:00:23.437Z","updated_at":"2026-05-03T19:32:30.261Z","avatar_url":"https://github.com/Pryority.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FarFrame 🦀\n\n## A Simple [Farcaster Frame](https://warpcast.notion.site/Farcaster-Frames-4bd47fe97dc74a42a48d3a234636d8c5) Server\n\n![Demo](https://github.com/Pryority/farframe/blob/main/demo.png)\n\n```Rust\n#[tokio::main]\nasync fn main() {\n    let app = Router::new()\n    .route(\"/\", get( Html(\n        \"\n        \u003c!DOCTYPE html\u003e\n        \u003chtml lang=\\\"en\\\"\u003e\n        \u003chead\u003e\n        \u003cmeta charset=\\\"UTF-8\\\" /\u003e\n        \u003cmeta name=\\\"viewport\\\" content=\\\"width=device-width, initial-scale=1.0\\\" /\u003e\n        \u003ctitle\u003eFarFrame\u003c/title\u003e\n        \u003cmeta property=\\\"og:title\\\" content=\\\"FarFrame\\\" /\u003e\n        \u003cmeta property=\\\"og:image\\\" content=\\\"https://farframe-rs.fly.dev/public/initial.png\\\" /\u003e\n        \u003cmeta property=\\\"fc:frame\\\" content=\\\"vNext\\\" /\u003e\n        \u003cmeta property=\\\"fc:frame:image\\\" content=\\\"https://farframe-rs.fly.dev/public/initial.png\\\" /\u003e\n        \u003cmeta property=\\\"fc:frame:button:1\\\" content=\\\"Roll\\\" /\u003e\n        \u003cmeta property=\\\"fc:frame:post_url\\\" content=\\\"https://farframe-rs.fly.dev/api/frame\\\" /\u003e\n        \u003c/head\u003e\n        \u003cbody\u003e\n        \u003ch1\u003eFarFrame\u003c/h1\u003e\n        \u003c/body\u003e\n        \u003c/html\u003e\n        \"\n    )))\n    .route(\"/api/frame\", post(Html(\"\n    \u003c!DOCTYPE html\u003e\n    \u003chtml lang=\\\"en\\\"\u003e\n    \u003chead\u003e\n    \u003cmeta property=\\\"fc:frame\\\" content=\\\"vNext\\\" /\u003e\n    \u003cmeta property=\\\"fc:frame:image\\\" content=\\\"https://farframe-rs.fly.dev/public/roll.png\\\" /\u003e\n    \u003cmeta property=\\\"fc:frame:post_url\\\" content=\\\"https://farframe-rs.fly.dev/api/frame\\\" /\u003e\n    \u003c/head\u003e\n    \u003c/html\u003e\n    \")))\n    .nest_service(\"/public\", ServeDir::new(\"public\"));\n\n    let listener = tokio::net::TcpListener::bind(\"0.0.0.0:3000\").await.unwrap();\n    axum::serve(listener, app).await.unwrap();\n}\n```\n\n## Inspirations\n\n- [gskril](https://github.com/gskril)'s [farcast-frame](https://github.com/gskril/farcaster-frame)\n- [Zizzamia](https://github.com/Zizzamia)'s [a-frame-in-100-lines](https://github.com/Zizzamia/a-frame-in-100-lines)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpryority%2Ffarframe-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpryority%2Ffarframe-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpryority%2Ffarframe-rs/lists"}