Skip to content

Rust/fltk-rs desktop demo application that uses the fltk-rs GUI framework and persists data in a database-like binary file, performs a full CRUD, and displays a to-do list in GUI.

License

Notifications You must be signed in to change notification settings

emarifer/rust-fltk-todolist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rust-fltk-todolist


Rust/fltk-rs desktop demo application that uses the fltk-rs GUI framework and persists data in a database-like binary file, performs a full CRUD, and displays a to-do list in GUI.


GitHub License Static Badge Static Badge


🤦 Yes, just another to-do application, but to try something new you have to start somewhere ¯\_(ツ)_/¯.

🤔 Explanation

fltk-rs is a Rust bindings for the FLTK Graphical User Interface library.

The fltk crate is a cross-platform lightweight gui library which can be statically linked to produce small, self-contained and fast gui applications.

Why choose FLTK?

  • Lightweight. Small binary, around 1mb after stripping. Small memory footprint.
  • Speed. Fast to install, fast to build, fast at startup and fast at runtime.
  • Single executable. No DLLs to deploy.
  • Supports old architectures.
  • FLTK's permissive license which allows static linking for closed-source applications.
  • Themeability (5 supported schemes: Base, GTK, Plastic, Gleam and Oxy), and additional theming using fltk-theme.
  • Provides around 80 customizable widgets.
  • Has inbuilt image support.

Here is a list of software using FLTK. For software using fltk-rs, check here.

  • Link to the official FLTK repository.
  • Link to the official documentation.

Fluid

FLTK offers a GUI WYSIWYG rapid application development tool called FLUID which allows creating GUI applications. Currently there is a video tutorial on youtube on using it with Rust: Use FLUID (RAD tool) with Rust (more info here).

Resources:

Conclusion:

Use this library if you want something very, very light, quick to code and compile... and you like somewhat minimalist interfaces like me.🤓

👨‍🚀 Getting Started

Run the application:

Install the Rust toolchain and run the following command in the root directory of the project:

cargo run

🖼️ Screenshot

Application window showing pop-up corresponding to the description of an item in the ToDo list:

Create an app bundle (.deb file & executable binary for MacOS/Linux):

Run the following command at the root of the project (it is necessary to have installed cargo bundle in the system using cargo install):

cargo bundle --release

Note

On Linux, if you install the application using the .deb file, a .todo.dat file will be generated in the user folder. We can establish the path of said file if we edit the application's preferences from its launcher.

Happy coding 😀!!

About

Rust/fltk-rs desktop demo application that uses the fltk-rs GUI framework and persists data in a database-like binary file, performs a full CRUD, and displays a to-do list in GUI.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages