A cross-platform ETCD management tool built with Tauri and React, providing an intuitive and efficient interface for managing ETCD key-value pairs.
中文版本: 中文 README
ETCD Client is a desktop application developed using Tauri and React, designed to provide a user-friendly interface for managing ETCD key-value stores. It supports connection management, CRUD operations on key-value pairs, and intuitive tree-based key navigation.
- Add, edit, and delete ETCD connection configurations
- Test connections before saving
- Support multiple saved connection profiles
- Add, edit, and delete key-value pairs
- Filter keys by prefix
- Tree-based key structure display
- Copy key values to clipboard
- Responsive design for different screen sizes
- Intuitive operation flow
- Real-time operation feedback
- React 19
- TypeScript
- Ant Design
- Tailwind CSS
- Vite
- Rust
- Tauri
- etcd-client
- Tokio
etcd_ui/
├── .github/ # GitHub configurations
│ └── workflows/ # CI/CD configuration
├── public/ # Static assets
├── src/ # Frontend code
│ ├── assets/ # Frontend assets
│ ├── layouts/ # Layout components
│ ├── pages/ # Page components
│ ├── store/ # State management
│ ├── types/ # Type definitions
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main application component
│ └── main.tsx # Application entry point
├── src-tauri/ # Tauri backend code
│ ├── capabilities/ # Capability configuration
│ ├── icons/ # Application icons
│ ├── src/ # Rust source code
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
├── docs/ # Documentation
├── README.md # This file (English)
├── README.zh-CN.md # Chinese version
├── package.json # Frontend dependencies
└── tsconfig.json # TypeScript configuration
Frontend:
- Node.js 18+
- npm or yarn
Backend:
- Rust 1.60+
- Cargo
Recommended IDE:
- VS Code with Tauri and rust-analyzer extensions
npm installnpm run devnpm run buildnpm run tauri [command]-
test_etcd_connection
- Purpose: Test ETCD connection
- Parameters:
- hosts: Vec - ETCD host addresses
- username: Option - Username (optional)
- password: Option - Password (optional)
- Returns: Result<bool, String>
-
connect_etcd
- Purpose: Connect to ETCD
- Parameters:
- hosts: Vec - ETCD host addresses
- username: Option - Username (optional)
- password: Option - Password (optional)
- Returns: Result<bool, String>
-
save_connection_config
- Purpose: Save connection configuration
- Parameters:
- config: ConnectionConfig - Connection configuration
- Returns: Result<(), String>
-
get_saved_connections
- Purpose: Get saved connection configurations
- Parameters: None
- Returns: Result<Vec, String>
-
delete_connection
- Purpose: Delete connection configuration
- Parameters:
- name: String - Connection name
- Returns: Result<(), String>
-
get_key_values
- Purpose: Get key-value pairs
- Parameters:
- prefix: String - Key prefix
- _limit: Option - Limit count (optional)
- Returns: Result<Vec, String>
-
set_key_value
- Purpose: Set key-value pair
- Parameters:
- key: String - Key
- value: String - Value
- Returns: Result<(), String>
-
delete_key
- Purpose: Delete key
- Parameters:
- key: String - Key
- Returns: Result<(), String>
The project uses GitHub Actions for CI/CD. Configuration files are located in .github/workflows/release.yml. Main workflows include:
- Code linting
- Build frontend and backend
- Generate release packages
- Publish to GitHub Releases
For detailed documentation, please refer to the docs directory:
MIT License