feat(desktop): add redis gui foundation baseline

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Senior Frontend Engineer
2026-03-28 10:39:40 +00:00
commit 8d50243d36
56 changed files with 17423 additions and 0 deletions

2
apps/desktop/src-tauri/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
/target

View File

@@ -0,0 +1,15 @@
[package]
name = "desktop-shell"
version.workspace = true
edition.workspace = true
license.workspace = true
[build-dependencies]
tauri-build = { version = "2.0", features = [] }
[dependencies]
redis-core = { path = "../../../crates/redis-core" }
serde = { workspace = true }
serde_json = { workspace = true }
tauri = { version = "2.0", features = [] }

View File

@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

View File

@@ -0,0 +1,12 @@
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "default",
"description": "Default capability for the primary desktop window.",
"windows": [
"main"
],
"permissions": [
"core:default"
]
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"default":{"identifier":"default","description":"Default capability for the primary desktop window.","local":true,"windows":["main"],"permissions":["core:default"]}}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 B

View File

@@ -0,0 +1,69 @@
use redis_core::{
BackendBootstrap, BackendError, CommandExecutionResult, ConnectionTestResult,
RedisCommandRequest, RedisConnectionRequest, RedisKeyBrowseRequest, RedisKeyBrowseResult,
RedisKeyMetadata, RedisKeyMetadataRequest, RedisKeyTtlUpdateRequest, RedisKeyTtlUpdateResult,
RedisValueReadRequest, RedisValueRecord, RedisValueWriteRequest, browse_keys, execute_command,
inspect_key, read_value, test_connection, update_key_ttl, write_value,
};
#[tauri::command]
fn backend_bootstrap() -> BackendBootstrap {
BackendBootstrap::for_desktop()
}
#[tauri::command]
fn test_redis_connection(
request: RedisConnectionRequest,
) -> Result<ConnectionTestResult, BackendError> {
test_connection(request)
}
#[tauri::command]
fn execute_redis_command(
request: RedisCommandRequest,
) -> Result<CommandExecutionResult, BackendError> {
execute_command(request)
}
#[tauri::command]
fn browse_redis_keys(request: RedisKeyBrowseRequest) -> Result<RedisKeyBrowseResult, BackendError> {
browse_keys(request)
}
#[tauri::command]
fn inspect_redis_key(request: RedisKeyMetadataRequest) -> Result<RedisKeyMetadata, BackendError> {
inspect_key(request)
}
#[tauri::command]
fn read_redis_value(request: RedisValueReadRequest) -> Result<RedisValueRecord, BackendError> {
read_value(request)
}
#[tauri::command]
fn write_redis_value(request: RedisValueWriteRequest) -> Result<RedisValueRecord, BackendError> {
write_value(request)
}
#[tauri::command]
fn update_redis_key_ttl(
request: RedisKeyTtlUpdateRequest,
) -> Result<RedisKeyTtlUpdateResult, BackendError> {
update_key_ttl(request)
}
fn main() {
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![
backend_bootstrap,
test_redis_connection,
execute_redis_command,
browse_redis_keys,
inspect_redis_key,
read_redis_value,
write_redis_value,
update_redis_key_ttl
])
.run(tauri::generate_context!())
.expect("failed to run desktop shell");
}

View File

@@ -0,0 +1,30 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "Redis GUI Foundation",
"version": "0.1.0",
"identifier": "ing.paperclip.redis-gui-foundation",
"build": {
"beforeDevCommand": "pnpm dev",
"beforeBuildCommand": "pnpm build",
"devUrl": "http://localhost:1420",
"frontendDist": "../dist"
},
"app": {
"windows": [
{
"label": "main",
"title": "Redis GUI Foundation",
"width": 1280,
"height": 820,
"resizable": true
}
],
"security": {
"csp": null
}
},
"bundle": {
"active": true,
"targets": "all"
}
}