{"id":20186374,"url":"https://github.com/numworks/epsilon-sample-app-rust","last_synced_at":"2025-04-10T06:24:56.504Z","repository":{"id":39494764,"uuid":"376837323","full_name":"numworks/epsilon-sample-app-rust","owner":"numworks","description":"A sample Rust app for the NumWorks graphing calculator","archived":false,"fork":false,"pushed_at":"2022-10-31T15:51:36.000Z","size":463,"stargazers_count":42,"open_issues_count":8,"forks_count":10,"subscribers_count":12,"default_branch":"master","last_synced_at":"2023-08-04T23:37:08.316Z","etag":null,"topics":["embedded","numworks","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numworks.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}},"created_at":"2021-06-14T13:43:15.000Z","updated_at":"2023-06-21T20:55:00.000Z","dependencies_parsed_at":"2023-01-19T16:44:14.010Z","dependency_job_id":null,"html_url":"https://github.com/numworks/epsilon-sample-app-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numworks%2Fepsilon-sample-app-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numworks%2Fepsilon-sample-app-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numworks%2Fepsilon-sample-app-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numworks%2Fepsilon-sample-app-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numworks","download_url":"https://codeload.github.com/numworks/epsilon-sample-app-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224556840,"owners_count":17331088,"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":["embedded","numworks","rust"],"created_at":"2024-11-14T03:16:59.979Z","updated_at":"2024-11-14T03:17:00.512Z","avatar_url":"https://github.com/numworks.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sample Rust app for Epsilon\n\n[![Build](https://github.com/numworks/epsilon-sample-app-rust/actions/workflows/build.yml/badge.svg)](https://github.com/numworks/epsilon-sample-app-rust/actions/workflows/build.yml)\n\n\u003cimg src=\"/doc/screenshots.gif?raw=true\" alt=\"Sample Rust app for the NumWorks graphing calculator\" width=\"300\" align=\"right\"\u003e\n\nThis is a sample [Rust](https://www.rust-lang.org) app to use on a [NumWorks calculator](https://www.numworks.com). Yes, you can now use Rust to write code for a graphing calculator!\n\n```rust\nfn eadk_main() {\n    for _ in 0..100 {\n        let c = eadk::Color { rgb565: random_u16() };\n        let r = eadk::Rect { x: random_coordinate(), y: random_coordinate(), width: random_coordinate(), height: random_coordinate() };\n        eadk::display::push_rect_uniform(r, c);\n    }\n    loop {}\n}\n```\n\n## Build the app\n\nTo build this sample app, you will need to install an embedded ARM rust compiler as well as [Node.js](https://nodejs.org/en/). The SDK for Epsilon apps is shipped as an npm module called [nwlink](https://www.npmjs.com/package/nwlink) that will automatically be installed at compile time.\n\n```shell\nbrew install rustup node # Or equivalent on your OS\nrustup-init\nrustup target add thumbv7em-none-eabihf\ncargo build\n```\n\n## Run the app\n\nThe app is sent over to the calculator using the DFU protocol over USB.\n\n```shell\n# Now connect your NumWorks calculator to your computer using the USB cable\ncargo run\n```\n\n## Notes\n\nThe NumWorks calculator runs [Epsilon](http://github.com/numworks/epsilon), a tailor-made calculator operating system. Starting from version 16, Epsilon allows installing custom binary apps. To run this sample app, make sure your calculator is up-to-date by visiting https://my.numworks.com.\n\nDue to the embedded nature of Epsilon, the Rust app has to be `no_std`. The interface that an app can use to interact with the OS is essentially a short list of system calls. Feel free to browse the [code of Epsilon](http://github.com/numworks/epsilon) itself if you want to get an in-depth look.\n\nPlease note that any custom app is removed when resetting the calculator.\n\n## License\n\nThis sample app is distributed under the terms of the BSD License. See LICENSE for details.\n\n## Trademarks\n\nNumWorks and Rust are a registered trademarks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumworks%2Fepsilon-sample-app-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumworks%2Fepsilon-sample-app-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumworks%2Fepsilon-sample-app-rust/lists"}