kuyawa/todo-rust

Simple ToDo app in Rust using webview

0

stars

6

commits

Rust

primary language

Aug 23, 2026

updated

README

todo-rust

A small, modern TODO app written in Rust, WebView and SQLite for local use, in less than 4mb!

No need to install 50gb of tools, and can be ported everywhere

webshot

  • UI: wry webview inside a winit window
  • Storage: SQLite via rusqlite (bundled — no system dependency)
  • Theme: light and dark, auto-detected from the OS, manually toggleable (persisted)
  • Icons: inline SVG only — no external fonts, icons, or network requests

Build & run

cargo run            # debug
cargo build --release # optimized, self-contained binary

The UI is embedded into the binary, so the executable is fully self-contained.

Portability

The database file (todo.db) lives outside the app, next to it, so the app and the db are the only two files you need to move:

# plain binary — db next to the executable
cp target/release/todo-rust ~/Desktop/Todo/
~/Desktop/Todo/todo-rust        # creates ~/Desktop/Todo/todo.db

# macOS app bundle — db next to the .app
cp -R Todo.app ~/Desktop/Todo/
open ~/Desktop/Todo/Todo.app    # creates ~/Desktop/Todo/todo.db

In debug builds the binary lives in target/debug/, so the db lands there too. Use a release build for a portable copy.

For a bundle installed somewhere not writable (e.g. /Applications), the app falls back to ~/Library/Application Support/Todo/todo.db. Packaging the bundle is covered in make-app.md.

Controls

ActionHow
Add taskType and press Enter, or click the + button
Complete / undoClick the circle on the left of a task
DeleteClick the trash icon (appears on hover)
FilterAll / Active / Done tabs
Clear completedFooter button
ThemeSun/moon button in the header
Focus inputPress /

Built with ♥️ by DeepSeek

Contributors

kuyawa

6 commits

kuyawa/todo-rust

Simple ToDo app in Rust using webview

0

stars

6

commits

Rust

primary language

Aug 23, 2026

updated

README

todo-rust

A small, modern TODO app written in Rust, WebView and SQLite for local use, in less than 4mb!

No need to install 50gb of tools, and can be ported everywhere

webshot

  • UI: wry webview inside a winit window
  • Storage: SQLite via rusqlite (bundled — no system dependency)
  • Theme: light and dark, auto-detected from the OS, manually toggleable (persisted)
  • Icons: inline SVG only — no external fonts, icons, or network requests

Build & run

cargo run            # debug
cargo build --release # optimized, self-contained binary

The UI is embedded into the binary, so the executable is fully self-contained.

Portability

The database file (todo.db) lives outside the app, next to it, so the app and the db are the only two files you need to move:

# plain binary — db next to the executable
cp target/release/todo-rust ~/Desktop/Todo/
~/Desktop/Todo/todo-rust        # creates ~/Desktop/Todo/todo.db

# macOS app bundle — db next to the .app
cp -R Todo.app ~/Desktop/Todo/
open ~/Desktop/Todo/Todo.app    # creates ~/Desktop/Todo/todo.db

In debug builds the binary lives in target/debug/, so the db lands there too. Use a release build for a portable copy.

For a bundle installed somewhere not writable (e.g. /Applications), the app falls back to ~/Library/Application Support/Todo/todo.db. Packaging the bundle is covered in make-app.md.

Controls

ActionHow
Add taskType and press Enter, or click the + button
Complete / undoClick the circle on the left of a task
DeleteClick the trash icon (appears on hover)
FilterAll / Active / Done tabs
Clear completedFooter button
ThemeSun/moon button in the header
Focus inputPress /

Built with ♥️ by DeepSeek

Contributors

kuyawa

6 commits

Languages

Rust

54.2%

HTML

45.8%