{"id":24482837,"url":"https://github.com/tylerbloom/webatui","last_synced_at":"2025-08-22T00:35:30.512Z","repository":{"id":217005256,"uuid":"742912038","full_name":"TylerBloom/webatui","owner":"TylerBloom","description":"An integration between the Yew and Ratatui crates for making TUI-themed WASM webapps","archived":false,"fork":false,"pushed_at":"2024-09-30T17:44:20.000Z","size":85,"stargazers_count":94,"open_issues_count":5,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T17:11:09.098Z","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":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TylerBloom.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}},"created_at":"2024-01-13T18:31:58.000Z","updated_at":"2025-03-17T16:54:57.000Z","dependencies_parsed_at":"2024-05-08T17:47:14.710Z","dependency_job_id":"ddb04d41-5df6-4d40-9f31-62b41cc577db","html_url":"https://github.com/TylerBloom/webatui","commit_stats":null,"previous_names":["tylerbloom/webatui"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TylerBloom%2Fwebatui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TylerBloom%2Fwebatui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TylerBloom%2Fwebatui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TylerBloom%2Fwebatui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TylerBloom","download_url":"https://codeload.github.com/TylerBloom/webatui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247226215,"owners_count":20904465,"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":"2025-01-21T12:15:39.830Z","updated_at":"2025-04-04T18:09:01.548Z","avatar_url":"https://github.com/TylerBloom.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Crates.io](https://img.shields.io/crates/v/webatui.svg)](https://crates.io/crates/webatui)\n[![Documentation](https://docs.rs/webatui/badge.svg)](https://docs.rs/webatui/)\n![GitHub Workflows](https://github.com/TylerBloom/webatui/actions/workflows/ci.yml/badge.svg)\n[![Coverage Status](https://codecov.io/gh/TylerBloom/webatui/branch/main/graph/badge.svg)](https://codecov.io/gh/TylerBloom/webatui)\n![Maintenance](https://img.shields.io/badge/Maintenance-Actively%20Developed-brightgreen.svg)\n\n## About\nWebatui is an integration between the [Yew](https://github.com/yewstack/yew) and [Ratatui](https://github.com/ratatui-org/ratatui) for building TUI-themed webapps.\nAs much as possible, webatui is built to be \"plug and play\".\nThat is, if you already have a TUI app that you want to display in the browser, you should be able to do so with minimal refactoring.\n\nThe crate was inspired by the creation of my blog, [The Avid Rustacean](https://avid-rustacean.shuttleapp.rs/).\nA write up on how Yew and Ratatui are integrated can be found in the blog [inital post](https://avid-rustacean.shuttleapp.rs/blog/About-This-Blog).\n\nWhat webatui does:\n - Renders the text to HTML\n - Supports Ratatui's index colors via [base16-palettes](https://github.com/TylerBloom/base16-palettes)\n - Supports hyperlinks\n - Supports mouse events (clicks)\n - Supports automatic screen resizing\n - Supports scrolling (on PC and mobile)\n\n## Basic Usage\nThis crate has examples that you can use as a template for your own project.\nTo get a more complete understanding, I would recommend following the [Yew tutorial](https://yew.rs/docs/tutorial).\nOnce you have wrapped your head around that (or just gotten it to run), come back here.\n\nFor basic apps, add Ratatui and Webatui as dependencies.\nWebatui handles nearly all of the Yew-related details, but your app will use ratatui to render the text.\nSee the hello world example to see how to turn your Yew hello world example into a Webatui hello world.\n\nThere are a few important details.\nWebatui handrolls most of its own CSS; however, you must use a monospace font.\nPick a font that you like, but every example uses Adobe's Source Code Pro font.\nMany monospace fonts will render well on PC but do not render in a strickly monospace fashion on mobile.\nTake this into consideration when picking your font.\n\n## Contributing\nThis project is licensed under LGPL-2.1.\nYou may use this crate as a dependency on a closed-source/properity codebase; however, if you improve up or derivate another library crate from this crate, please license that crate under the LGPL-2.1 or a strong GPL license.\n\nIf you discover a bug, would like a feature supported, or have some way of improving this crate, please feel free to open an issue or a PR.\n\n## Future Plans\nThis crate was born from an abstraction that I needed for my blog.\nAs such, there are surely ways to improve upon it.\nI will avoid needlessly adding breaking changes; however, they still many occur for improved ergonomics, effieceny, final binary size, and more.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylerbloom%2Fwebatui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftylerbloom%2Fwebatui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylerbloom%2Fwebatui/lists"}