this post was submitted on 15 Aug 2023
14 points (100.0% liked)

Rust Programming

7734 readers
1 users here now

founded 5 years ago
MODERATORS
 

I want to build a small gui application in rust. What are my options for application storage? I have heard of the confi crate but I want to save a bit more than just configuration. Is there a crate that handles this for me easily?

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Vorpal@programming.dev 11 points 1 year ago (1 children)

Be sure to treat state and configuration separately. It doesn't matter on Windows as far as I know (they go in the same location), but on Linux those are supposed to go in different places.

Many programs get this wrong, and it is quite annoying as I track my config files in git. I don't want a diff just because the list of recently opened files changed! Or even worse: the program stores the last window size and position in the config file... (looking at you KDE!)

Here are some libraries I found to help with this in a cross platform way:

I haven't tried either, haven't written such a program yet.

As for how to store data, there are indeed many options, depending on your needs:

  • Plain text based formats (toml, yaml, JSON, ini, ...) can be good for configs and basic state. As a bonus it let's the user easily manage the file in version control if they are so inclined.
  • Databases (SQLite mostly)
  • Custom formats (binary files in a directory structure is often used for browser caches for example) .

Without knowing more it is hard to give specific advise.

[โ€“] CMahaff@lemm.ee 3 points 1 year ago

Thanks for the link to "dirs" - I wish I'd known about it before I implemented a (worse) version just using the home crate.