# Kairoa **Repository Path**: mirrors/Kairoa ## Basic Information - **Project Name**: Kairoa - **Description**:   Kairoa 是一款现代化的跨平台桌面开发工具集,为开发者提供丰富的实用工具,包括: :closed_lock_with_key: Hash 计算器、RSA 密钥生成器 :al - **Primary Language**: Rust - **License**: AGPL-3.0 - **Default Branch**: main - **Homepage**: https://www.oschina.net/p/kairoa - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-17 - **Last Updated**: 2026-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Kairoa ➟ Developer Toolbox

A modern, cross-platform desktop utility application for developers.

**English | [简体中文](./README_zh.md)**

Main Window

## Features ### 🔐 Hash Calculator - Calculate hash values for text and files - Support for multiple algorithms: MD5, SHA-1, SHA-256, SHA-384, SHA-512 - Drag-and-drop file support - Copy hash values with visual feedback ### ⏰ Time Converter - Convert between timestamps and dates - Support for timezone selection (IANA timezone list) - Searchable timezone dropdown - Display results in multiple formats (YYYY-MM-DD HH:mm:ss and ISO format) - Quick access to current time ### 🔑 UUID Generator - Generate single or multiple UUIDs - Option to include/exclude hyphens - Copy individual UUIDs or copy all at once - Configurable count ### 📝 JSON Formatter - Format and minify JSON - Syntax highlighting for formatted JSON - Real-time validation - Copy formatted JSON to clipboard ### ⚙️ Config Converter - Convert between multiple configuration file formats: JSON, YAML, TOML, INI, XML, Properties, ENV, TOON - Real-time conversion and format validation - Automatic conversion history saving - Bidirectional conversion support for project migration and configuration unification ### 🔧 Encode/Decode - **Base64**: Encode/decode text and images - **URL**: Encode/decode URL strings - **Image/Base64**: Convert images to/from Base64 format - Image preview and download support - Side-by-side input/output layout ### 🌐 REST API Client - Send HTTP requests with multiple methods (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS) - Custom request headers - Multiple body types: JSON, Text, XML, Form Data, URL Encoded - Multi-tab support for managing multiple requests - Response display: status code, headers, body, and response time - **cURL Import/Export**: Import requests from cURL commands or export requests as cURL commands - Automatically detects body parameters (`-d`, `--data`, `--data-raw`, `--data-binary`, `--data-urlencode`, `-F`, `--form`) and sets POST method when no explicit method is specified (following cURL best practices) - Formatted cURL command output for easy readability - Proper shell string escaping for correct command execution ### 🔌 WebSocket Tester - Support for WebSocket (ws://) and secure WebSocket (wss://) connections - Real-time message sending and receiving - Message history recording and viewing - Connection status monitoring - Support for custom message formats - Convenient for developing and debugging real-time applications and monitoring systems ### 🐳 Docker Commands Generator - Visually generate common Docker commands - Container management: run, stop, delete, view logs, etc. - Image operations: build, pull, push, delete, etc. - Network and volume management - Support for custom parameters and options - No need to memorize complex command parameters, generate accurate commands through interface operations ### 📦 Git Commands Generator - Quickly generate common Git commands - Commit management: add, commit, push, pull, etc. - Branch operations: create, switch, merge, delete, etc. - Remote repository management - History viewing and rollback - Especially suitable for Git beginners and scenarios requiring quick generation of complex commands ### 📊 Text Statistics - Character count (with/without spaces) - Word count (supports both English and Chinese) - Line and paragraph count - Character type analysis: Chinese characters, English characters, numbers, punctuation ### 📅 Crontab Parser - Parse and validate cron expressions - Generate human-readable descriptions - Display next execution times ### 📄 PDF Signature Checker - Inspect PDF digital signatures locally - Validate CMS (PKCS#7) detached signatures - Display signer metadata, byte ranges, and certificate fields ### 🔒 TLS Version Checker - Check which TLS/SSL versions are supported by remote servers - Test TLS 1.0, 1.1, 1.2, and 1.3 support - Display certificate information - Identify preferred TLS version ### 📡 Port Scanner - Scan TCP ports on any remote host with custom ranges - Adjustable timeout and concurrency controls for faster scans - Quick presets for top/common ports - Displays open ports with response latency ### 🔍 Traceroute - Trace the route packets take to reach a destination host - Display each hop with hostname, IP address, and RTT (Round-Trip Time) - Configurable maximum hops and timeout settings - Cross-platform support (Windows tracert, Linux/macOS traceroute) - Useful for network diagnostics, routing analysis, and troubleshooting connectivity issues ### 🌍 IP/Domain Lookup - Query IP address geographic location and ISP information - Domain resolution and reverse lookup - Network details display - Support for batch queries - Convenient for network diagnosis, security analysis, and geographic location positioning ### 🔍 DNS Lookup - Query DNS records (A, AAAA, CNAME, MX, TXT, NS, SOA, SRV) for domains - Support for DNS over HTTPS (DoH) using Cloudflare DNS - Select multiple record types to query simultaneously - Display TTL and record data in organized tables - Quick selection buttons for common record types - Useful for DNS troubleshooting, domain configuration, and network analysis ### 📋 HTTP Status Code Lookup - Query HTTP status codes with detailed descriptions and RFC references - Search by status code number or name/description - Display common status codes by default for quick reference - Support for all standard HTTP status codes (1xx-5xx) - Category classification: Informational, Success, Redirection, Client Error, Server Error - Copy status codes with one click - Useful for API development, debugging, and learning HTTP protocols ### 📄 MIME Type Lookup - Query MIME types by file extension or MIME type string - Comprehensive database of MIME types including modern formats - Search by extension (e.g., pdf, jpg) or MIME type (e.g., application/pdf) - Display associated file extensions and descriptions - Useful for web development, file handling, and content-type configuration ### 🔍 User-Agent Parser - Parse and analyze User-Agent strings to extract browser, OS, and device information - Display browser name, version, rendering engine - Show operating system and device type - Common User-Agent examples for quick testing - Use current browser's User-Agent with one click - Helpful for web development, analytics, and compatibility testing ### 🔑 Environment Variables Manager - Manage environment variables with import/export support - Add, edit, and delete environment variables - Import from .env format text - Export to .env format - Copy all variables at once - Local storage persistence - Useful for development environment configuration and testing ### 🎨 Color Converter - Convert between color formats: HEX, RGB, HSL, HWB, LCH, CMYK, color names - Color picker with real-time preview - Bidirectional conversion between any supported format - All formats can be edited and converted in real-time ### 🔒 Password Strength Checker - Real-time password strength assessment - Multiple security checks: length, uppercase, lowercase, numbers, special characters, character variety - Common password detection - Sequential and repeated character detection - Estimated crack time calculation - Improvement suggestions for weak passwords ### 🔐 Password Vault - Secure local password manager with AES encryption - Master password protection for all stored passwords - Add, edit, and delete password entries - Organize passwords by categories (general, work, personal, finance, social, development) - Search and filter passwords by title, username, or URL - Show/hide password visibility toggle - Import and export encrypted password files - Copy passwords with one click - All data encrypted and stored locally, never shared or uploaded - Reset vault option to clear all data ### 📜 Certificate Viewer - View and inspect certificate files (PEM, CRT, CER, KEY, CERT, DER, P12, PFX) - Display certificate details: subject, issuer, validity, serial number, algorithm, key size - SHA-256 fingerprint calculation - Certificate validity status (valid/expired/not yet valid) - Extension information display - File drag-and-drop support - All processing done offline ### 🔢 Base Converter - Convert between number bases: Binary (2), Octal (8), Decimal (10), Hexadecimal (16) - Automatic prefix detection and removal (0b, 0o, 0x) - Bidirectional conversion with validation ### 🔐 RSA Key Generator - Generate RSA key pairs (public/private keys) - Support for multiple key sizes: 1024, 2048, 3072, 4096 bits - Export in PEM or DER format - Copy keys to clipboard ## Interface - 🌓 **Light/Dark Theme**: Switch between light and dark modes (6 themes available) - 🌍 **Internationalization**: Support for English and Chinese - 🎨 **Modern UI**: Built with Tailwind CSS - 📱 **Responsive Design**: Clean and intuitive interface ## Tech Stack - **Frontend**: SvelteKit 5, TypeScript, Tailwind CSS - **Desktop**: Tauri 2 - **Icons**: Lucide Svelte - **Cryptography**: crypto-js ## Prerequisites - Node.js 18+ and npm - Rust (latest stable version) - System dependencies for Tauri: - **macOS**: Xcode Command Line Tools - **Linux**: System dependencies (see [Tauri documentation](https://tauri.app/v1/guides/getting-started/prerequisites)) - **Windows**: Microsoft Visual Studio C++ Build Tools ## Installation This project runs a GitHub CI to build binaries for all platforms. Head to [Releases](https://github.com/covoyage/kairoa/releases) and download the binary as per your requirements. ### macOS Since the macOS binary is not code-signed with an Apple Developer certificate, you may need to remove the quarantine attribute before running the application: ```bash xattr -r -c /Applications/kairoa.app ``` This command removes the extended attributes that macOS applies to downloaded applications, allowing you to run the app without Gatekeeper warnings. ### Linux The application automatically handles common display issues on Linux systems. If you still encounter a white screen, it may be due to insufficient permissions for accessing graphics devices. **Automatic Solution:** The application automatically sets `WEBKIT_DISABLE_DMABUF_RENDERER=1` on startup to resolve compatibility issues with NVIDIA GPUs and WebKit2GTK. If hardware acceleration fails, it will automatically fall back to software rendering. **Manual Solution (if automatic handling doesn't work):** If you still experience issues, you can manually add your user to the `video` and `render` groups: ```bash sudo usermod -a -G video,render $USER ``` After adding your user to these groups, you need to log out and log back in (or restart your system) for the changes to take effect. **Alternative solution:** You can also run the application with software rendering explicitly enabled: ```bash LIBGL_ALWAYS_SOFTWARE=1 ./kairoa ``` **Note:** Software rendering may have performance implications but should resolve display issues. ## development 1. Clone the repository: ```bash git clone https://github.com/covoyage/kairoa.git cd kairoa ``` 2. Install dependencies: ```bash npm install ``` 3. Run the development server: ```bash npm run tauri dev ``` ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ### Development Guidelines 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/AmazingFeature`) 3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) 4. Push to the branch (`git push origin feature/AmazingFeature`) 5. Open a Pull Request ### Code Style - Follow TypeScript best practices - Use Svelte 5 runes (`$state`, `$derived`, `$effect`) - Follow the existing code style and formatting - Add comments for complex logic ## License AGPL-3.0 License - see the [LICENSE](LICENSE) file for details. ## Support If you encounter any issues or have questions, please open an issue on GitHub. --- Made with ❤️ using Tauri + SvelteKit