feat(store): add database storage with redb and bson support

This commit introduces a new `store` crate that provides database functionality using redb for storage and bson for serialization. It includes tables for users, servers, and settings, along with async operations for getting, inserting, modifying, and removing data. The store supports UUID keys and integrates with the existing Jellyfin client authentication flow.

The changes also include:
- Adding new dependencies to Cargo.lock for bitvec, bson, deranged, funty, num-conv, powerfmt, radium, serde_bytes, simdutf8, time, and wyz
- Updating Cargo.toml to include the new store crate in workspace members
- Modifying ui-iced to use the new database initialization flow with config loading from TOML
- Adding a settings module to ui-iced with UI components for managing server and user configuration
- Implementing secret string handling for sensitive data like passwords
- Updating API client to support pre-authenticated clients with cached tokens
This commit is contained in:
uttarayan21
2025-11-26 16:15:41 +05:30
parent ca1fd2e977
commit 05ae9ff570
10 changed files with 527 additions and 154 deletions

View File

@@ -70,7 +70,10 @@
nativeBuildInputs = with pkgs; [
pkg-config
];
# LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath [pkgs.wayland];
LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
# SYSTEM_DEPS_LINK = "static";
# PKG_CONFIG_ALL_STATIC = "1";
buildInputs = with pkgs;
[
@@ -84,11 +87,12 @@
glib
glib-networking
libsysprof-capture
pcre2
libunwind
elfutils
zstd
# bzip2_1_1
# libsysprof-capture
# pcre2
# libunwind
# elfutils
# zstd
openssl
vulkan-loader
@@ -97,14 +101,18 @@
gst_all_1.gstreamermm
gst_all_1.gst-vaapi
# util-linux
# libselinux
# libsepol
alsa-lib-with-plugins
libxkbcommon
udev
wayland
wayland-protocols
xorg.libX11
xorg.libXi
xorg.libXrandr
# xorg.libX11
# xorg.libXi
# xorg.libXrandr
])
++ (lib.optionals pkgs.stdenv.isDarwin [
libiconv