EMOM Timer

Posted on Sun 19 November 2023 in tech

Exploring the EMOM Timer - A Rust and Yew Application

EMOM Timer

Introduction to the EMOM Timer

EMOM Timer is a customizable timer designed for your workout. EMOM Timer is developed using the Rust programming language and the Yew framework. This is a completely new way to develop web applications. The resulting application was easy to put together and is both performant and safe.

The Power of Rust and Yew

  1. WebAssembly and Performance: Yew compiles to WebAssembly (wasm), thus EMOM Timer runs at near-native speed. This is crucial for a timer application where precision and responsiveness are key.

  2. Component-Based Architecture: The use of a component-based architecture, similar to React and Vue.js, allows for a modular and maintainable codebase. This makes the EMOM Timer both scalable and easy to improve.

  3. Rust's Safety and Performance: Leveraging Rust's strengths, the application ensures memory and thread safety, minimizing common bugs and enhancing overall reliability.

  4. Concurrency and Multi-Threading: Thanks to Rust, EMOM Timer can efficiently utilize modern multi-core processors, ensuring smooth performance.

  5. JavaScript Interoperability: The ability to interoperate with JavaScript enables the use of a vast array of existing libraries, making the timer more versatile.

  6. Rich Ecosystem and Tooling: With Rust's growing ecosystem and tools like Cargo for package management, the development of the EMOM Timer benefits from a robust support system.

  7. Efficient Rendering with Virtual DOM: Like React, Yew's virtual DOM ensures that only necessary parts of the DOM are updated, leading to enhanced performance.

  8. Declarative UI for Readability: The declarative nature of Yew's UI design promotes readability and maintainability of the code.

  9. Familiar Syntax for React Developers: Yew's macro-based syntax, similar to JSX, makes it accessible for developers with a React background.

  10. Strong Type System of Rust: The Rust type system helps in catching errors early during the development phase, ensuring a more robust application【6†source】.


EMOM Timer is a fitness tool and a showcase of what can easily be achieved with Rust and Yew. It illustrates how high-performance, safe, and developer-friendly practices can come together in a rapid and easy to build package.

This project can be found on GitHub