{"id":20972420,"url":"https://github.com/kyleu/generust","last_synced_at":"2025-07-03T19:34:43.422Z","repository":{"id":144998288,"uuid":"220682056","full_name":"kyleu/generust","owner":"kyleu","description":"A cargo-generate template to help you build your best web application using Rust","archived":false,"fork":false,"pushed_at":"2020-01-12T15:50:17.000Z","size":1215,"stargazers_count":15,"open_issues_count":5,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-14T11:41:33.009Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/kyleu.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":"2019-11-09T17:59:58.000Z","updated_at":"2024-01-16T16:54:45.000Z","dependencies_parsed_at":null,"dependency_job_id":"965c12f5-f52c-4248-9f0b-bec10223a92e","html_url":"https://github.com/kyleu/generust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kyleu/generust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleu%2Fgenerust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleu%2Fgenerust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleu%2Fgenerust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleu%2Fgenerust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kyleu","download_url":"https://codeload.github.com/kyleu/generust/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kyleu%2Fgenerust/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263388917,"owners_count":23459300,"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":[],"created_at":"2024-11-19T04:08:04.834Z","updated_at":"2025-07-03T19:34:43.411Z","avatar_url":"https://github.com/kyleu.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Generust\n\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](License)\n\n## A Rust project template for dynamic web applications\n\n`Generust` is a [cargo-generate](https://github.com/ashleygwilliams/cargo-generate) template that provides a Rust web server and WASM client with some [interesting features](doc/features.md).\n\nIt uses [actix-web](https://actix.rs), [maud](https://maud.lambda.xyz), [UIKit](https://getuikit.com), and [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) to serve your app as a server or webview, via HTTP and WebSockets.\n\nRust nightly is required, at least for now\n\n## Screenshots\n\n![Index Page](doc/images/01_index.png)\nNormally started as a server, Generust also embeds a webview, allowing you to run a standalone instance.\n\n![User Profile](doc/images/02_profile.png)\nUser profile settings allow you to set your name and theme.\n\n![UIKit](doc/images/03_gallery.png)\nUIKit integration and reverse routing make designing attractive pages simple.\n\n![Dark Mode](doc/images/04_gallery_dark.png)\nI don't get it, but some of you love Dark Mode. Well, here it is.\n\n![Backtrace](doc/images/05_backtrace.png)\nCustom error pages show detailed traces (or custom error pages)\n\n## Example Projects\n\n[generust-example-project](https://github.com/kyleu/generust-example-project) - Basically just the result of running this template\n\n## Use `cargo generate` to clone this template and make it your own\n\n```script\ncargo install cargo-generate\ncargo generate --git https://github.com/kyleu/generust.git --name my-project\ncd my-project\n./bootstrap\n```\n\nThis will package the WASM client, compile the UIKit SCSS, and build the main application.\nYou can execute `cargo run` to start the server and open a system webview pointing to it, or run `{{project-name}} -h` to see the CLI options.\n[Scripts](doc/scripts.md) are provided in `./bin` that will help you build and publish the app.\n\nGood luck!\n\n## Your Project\n\nAfter you've created your project, the variables in this file will be replaced with your project's information, just remove this section and the lines above it.\n\n# {{project-name}}\n\n[![Build Status](https://travis-ci.org/{{project-name}}/{{project-name}}.svg?branch=master)](https://travis-ci.org/{{project-name}}/{{project-name}})\n[![Crate](https://meritbadge.herokuapp.com/{{project-name}})](https://crates.io/crates/{{project-name}})\n[![Docs](https://docs.rs/{{project-name}}/badge.svg)](https://docs.rs/{{project-name}})\n[![Dependencies](https://deps.rs/repo/github/{{project-name}}/{{project-name}}/status.svg)](https://deps.rs/repo/github/{{project-name}}/{{project-name}})\n\n{{project-name}} is a work in progress...\n\nRunning as a client application or shared server, `{{project-name}}` has a focus on performance, correctness, and developer comfort.\n\nSee [installing.md](doc/installing.md) for installation guidance. After installing, run `{{project-name}} -h` to get started.\n\nSee [scripts.md](doc/scripts.md) for available tools for building, running, and packaging the app.\n\n## Crates\n\n`{{project-name}}` splits its code into several library crates:\n\n- `{{project-name}}-assets`: Contains embedded static files intended to be served from the web application\n- `{{project-name}}-client`: Run in the client's browser as a WebAssembly package, includes templates\n- `{{project-name}}-controllers`: Contains actix-web HTTP controllers, usually calling methods from `{{project-name}}-service`\n- `{{project-name}}-core`: Contains definitions that are shared between server and client\n- `{{project-name}}-service`: Contains the primary logic for the application. It receives RequestMessages and emits ResponseMessages\n- `{{project-name}}-templates`: Contains Maud templates used by the server to render responses\n- `{{project-name}}`: Stored in the root of the project, this is the app's main library and binary\n\n## Config\n\nThe project currently exclusively uses the filesystem for saved data, no database is involved.\n\n### Directories\n\nBy default, {{project-name}} stores config files in your system's user configuration directory.\n\n- macOS: ~/Library/Application Support/{{project-name}}\n- Linux: ~/.config/{{project-name}}\n- Windows: %APPDATA%/{{project-name}}/{{project-name}}\n\n### Files\n\n`profile/*`: User profile information\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyleu%2Fgenerust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkyleu%2Fgenerust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkyleu%2Fgenerust/lists"}