{"id":13806336,"url":"https://github.com/vascokk/fullstack-rust","last_synced_at":"2026-01-26T15:33:40.694Z","repository":{"id":40603052,"uuid":"363203966","full_name":"vascokk/fullstack-rust","owner":"vascokk","description":"Reference implementation of a full-stack Rust application","archived":false,"fork":false,"pushed_at":"2023-10-09T14:44:47.000Z","size":92,"stargazers_count":89,"open_issues_count":1,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-04T01:06:07.164Z","etag":null,"topics":["actix","api","fullstack","rest","rust","wasm","webassembly","yew"],"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/vascokk.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}},"created_at":"2021-04-30T16:49:34.000Z","updated_at":"2024-05-17T02:26:43.000Z","dependencies_parsed_at":"2024-04-10T00:39:26.062Z","dependency_job_id":"9e2c4000-1da3-49a3-aba8-b72d9f0e9ca7","html_url":"https://github.com/vascokk/fullstack-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascokk%2Ffullstack-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascokk%2Ffullstack-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascokk%2Ffullstack-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vascokk%2Ffullstack-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vascokk","download_url":"https://codeload.github.com/vascokk/fullstack-rust/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225260402,"owners_count":17446091,"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":["actix","api","fullstack","rest","rust","wasm","webassembly","yew"],"created_at":"2024-08-04T01:01:10.404Z","updated_at":"2026-01-26T15:33:40.677Z","avatar_url":"https://github.com/vascokk.png","language":"Rust","funding_links":[],"categories":["Projects"],"sub_categories":[],"readme":"## Full-stack Rust with WebAssembly\n\n# Look Ma, No JavaScript !!! \n\n![img.png](img.png)\n\nMy very first Rust project (implementation of the \"Connect 5\" game), I used as a learning tool.\n\nMy goal was to create some sort of a \"reference implementation\" of a Fullstack Rust application. Hopefully you will find it useful :).\nHere you can find how to:\n### Client:\n- build Web client in Rust, without a single line of JavaScript, using  [Yew](https://github.com/yewstack/yew) WebAssembly framework\n- use [yew-router](https://github.com/yewstack/yew/tree/master/packages/yew-router) for navigation between pages\n- use multithreading components, communicating by \"message passing\" with Yew Agents\n- use Yew StorageService to keep session data\n- utilise a CSS framework ([Bulma](https://bulma.io))\n\n### Server:\n- Use [Actix Web](https://github.com/actix/actix-web) web framework to implement REST API\n- [Diesel](https://diesel.rs) ORM with SQLite as default DB \n- Session cookies\n- Integration testing for the REST API\n- Mocking functions (db calls) in unit tests \n\n\n#### Usage:\n\nInstall trunk and build the client:\n```\ncd client\ncargo install trunk wasm-bindgen-cli\ntrunk build -d ../server/static/ \n```\n\nStart the server: \n``` bash\ncd server\ncargo run --package connect5-rust --bin connect5-rust\n```\nOpen http://127.0.0.1:8088/ in your browser. Open a second session in another browser for player #2.\n\n\nThere are still few things that need to be improved/fixed, but the project served it's purpose (for me, at least) and is useful as it is, so I'll probably won't be fixing them. Feel free, however, to do so and may be create some PR(s) :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvascokk%2Ffullstack-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvascokk%2Ffullstack-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvascokk%2Ffullstack-rust/lists"}