[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81790":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":14,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},81790,"slint-kindle-backend","sverrejb\u002Fslint-kindle-backend","sverrejb","Slint backend for jailbroken Kindles. Create rich GUI apps with Rust!",null,"Rust",66,4,44,0,2,22,45.3,"Apache License 2.0",false,"main",true,[],"2026-06-12 04:01:35","# Slint backend for Kindle\n\nSlint backend for jailbroken Kindles. Allows for running Slint GUIS on Kindle devices.\n\n> ⚠️ **Experimental crate: limited device support.**\n> This crate is experimental and has not been tested on a wide variety of Kindle devices. See \"Tested devices\" further down. Please file an issue (or a PR) if you try it on different hardware!\n\n\u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fsverrejb\u002Fslint-kindle-backend\u002Fmain\u002Fdemo.webp\" alt=\"Slint app running on a Kindle Paperwhite\" width=\"750\">\n\n## Usage\n\nAdd the crate to your app:\n\n```toml\n[dependencies]\nslint = { version = \"1.16\", default-features = false, features = [\"compat-1-2\", \"std\", \"renderer-software\"] }\nslint-backend-kindle = \"0.1\"\n```\n\nBundle a TTF\u002FOTF font with your app and pass it to `install()` at startup. **The font is required**. The various Kindle models has no fontconfig and no default location for system fonts, so Slint's software renderer would panic on the first fallback query without one.\n\n```rust\nslint::include_modules!();\n\nstatic FONT: &[u8] = include_bytes!(\"..\u002Ffonts\u002FLiberationSans-Regular.ttf\");\n\nfn main() {\n    slint_backend_kindle::install(FONT).expect(\"failed to install Kindle backend\");\n    let app = AppWindow::new().expect(\"failed to create window\");\n    app.run().expect(\"event loop error\");\n}\n```\n\nThe font becomes the default, so Slint widgets that don't specify `font-family` render correctly. You can still reference the font by its real family name in your `.slint` files (e.g. `font-family: \"Liberation Sans\"`).\n\n### Additional fonts\n\n`install()` returns a `KindleBackend` handle. To use more than one typeface, register the extras on the handle **after** constructing the window:\n\n```rust\nstatic DEFAULT_FONT: &[u8] = include_bytes!(\"..\u002Ffonts\u002FLiberationSans-Regular.ttf\");\nstatic FANCY_FONT: &[u8] = include_bytes!(\"..\u002Ffonts\u002FDancingScript-Regular.ttf\");\n\nfn main() {\n    let backend = slint_backend_kindle::install(DEFAULT_FONT)\n        .expect(\"failed to install Kindle backend\");\n    let app = AppWindow::new().expect(\"failed to create window\");\n    backend.register_font_from_memory(FANCY_FONT)\n        .expect(\"failed to register font\");\n    app.run().expect(\"event loop error\");\n}\n```\n\nReference each font in `.slint` by its **real family name** (the one in the font's `name` table), not the filename. `DancingScript-Regular.ttf` for instance reports itself as `\"Dancing Script\"`, so the .slint must say `font-family: \"Dancing Script\"`. If a glyph fails to render, that mismatch is the first thing to check — `fc-query font.ttf` or `otfinfo --info font.ttf` will show the family string the font advertises.\n\n## Cross-compiling for the Kindle\n\nThe Kindle runs an ARMv7 musl userland. Recommended toolchain:\n\n```sh\nrustup target add armv7-unknown-linux-musleabihf\ncargo install cargo-zigbuild\n# brew install zig    # or your platform's equivalent\n\ncargo zigbuild --release --target armv7-unknown-linux-musleabihf\n```\n\nThe resulting binary is statically linked against musl and runs directly on the device.\n\n## Tested devices\nSo far, the backend has been tested to work on:\n* Kindle Paperwhite 7th gen.\n* Kindle Touch 4th gen\n \n\n## Roadmap\n* Examples\n* Better device support\n* Font discovery instead of hard coded default\n\n## License\n\nThe code in this crate is dual-licensed under either of\n\n* MIT License ([LICENSE-MIT](LICENSE-MIT) or https:\u002F\u002Fopensource.org\u002Flicense\u002Fmit)\n* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or https:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0)\n\nat your option.\n\nNote that this crate depends on [`slint`](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fslint), which is licensed under `GPL-3.0-only OR LicenseRef-Slint-Royalty-free-2.0 OR LicenseRef-Slint-Software-3.0`. **Any application built using this backend and Slint must comply with one of Slint's licenses.**","该项目为越狱版Kindle设备提供Slint GUI后端支持。其核心功能是允许开发者在Kindle设备上运行基于Slint框架的图形界面应用程序，采用Rust语言编写，确保了高性能与安全性。项目特别指出需要用户自定义安装字体以适配不同型号的Kindle设备，并提供了详细的跨平台编译指南。适用于希望扩展Kindle功能、创建定制化应用或进行实验性开发的技术爱好者和开发者。请注意，该项目仍处于实验阶段，对部分设备的支持有限。","2026-06-11 04:06:43","CREATED_QUERY"]