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

@@ -255,7 +255,6 @@ impl JellyfinClient {
"{}/Videos/{}/stream?static=true",
self.config.server_url.as_str(),
item,
// item,
);
Ok(url::Url::parse(&stream_url).expect("Failed to parse stream URL"))
}