# ๐Ÿ—„๏ธ EasySQL
![EasySQL](https://img.shields.io/badge/EasySQL-v2.0-06b6d4?style=for-the-badge) ![Tauri](https://img.shields.io/badge/Tauri-2.0-ffc131?style=for-the-badge&logo=tauri) ![React](https://img.shields.io/badge/React-18-61dafb?style=for-the-badge&logo=react) ![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6?style=for-the-badge&logo=typescript) ![Rust](https://img.shields.io/badge/Rust-orange?style=for-the-badge&logo=rust) **็ŽฐไปฃๅŒ–ๅคšๆ•ฐๆฎๅบ“็ฎก็†ๅทฅๅ…ท** *่ฝป้‡ใ€้ซ˜ๆ€ง่ƒฝใ€่ทจๅนณๅฐ*
--- ## โœจ ็‰นๆ€ง - ๐Ÿš€ **่ถ…่ฝป้‡** - ๅŸบไบŽ Tauri 2.0 + Rust๏ผŒๅฎ‰่ฃ…ๅŒ…ไป… ~10MB - โšก **้ซ˜ๆ€ง่ƒฝ** - Rust ๅŽŸ็”Ÿๆ•ฐๆฎๅบ“้ฉฑๅŠจ๏ผŒๆฏซ็ง’็บงๅ“ๅบ” - ๐ŸŽจ **็ฒพ็พŽ UI** - Windows Metro ้ฃŽๆ ผ๏ผŒๆทฑ่‰ฒไธป้ข˜ - ๐Ÿ”Œ **ๅคšๆ•ฐๆฎๅบ“** - ๆ”ฏๆŒ MySQLใ€PostgreSQLใ€SQLiteใ€SQL Server ็ญ‰ - ๐Ÿ” **SSH ้šง้“** - ๅฎ‰ๅ…จ่ฟžๆŽฅ่ฟœ็จ‹ๆ•ฐๆฎๅบ“ - ๐Ÿ“ **ๆ™บ่ƒฝ็ผ–่พ‘ๅ™จ** - SQL ่ฏญๆณ•้ซ˜ไบฎใ€ๆ™บ่ƒฝ่กฅๅ…จใ€ไปฃ็ ็‰‡ๆฎต - ๐Ÿ“Š **ๆ•ฐๆฎ็ผ–่พ‘** - ๆ”ฏๆŒ็›ดๆŽฅ็ผ–่พ‘่กจๆ ผๆ•ฐๆฎ - ๐Ÿ“ค **ๅฏผๅ…ฅๅฏผๅ‡บ** - ๆ”ฏๆŒ JSONใ€Navicat NCX ๆ ผๅผ ## ๐Ÿ—ƒ๏ธ ๆ”ฏๆŒ็š„ๆ•ฐๆฎๅบ“ | ๆ•ฐๆฎๅบ“ | ็Šถๆ€ | ่ฏดๆ˜Ž | |--------|------|------| | ๐Ÿฌ MySQL | โœ… | ๅฎŒๅ…จๆ”ฏๆŒ | | ๐Ÿ˜ PostgreSQL | โœ… | ๅฎŒๅ…จๆ”ฏๆŒ | | ๐Ÿ’พ SQLite | โœ… | ๅฎŒๅ…จๆ”ฏๆŒ | | ๐Ÿ“Š SQL Server | โœ… | ๅฎŒๅ…จๆ”ฏๆŒ | | ๐Ÿฆญ MariaDB | โœ… | ๅฎŒๅ…จๆ”ฏๆŒ | | ๐Ÿƒ MongoDB | ๐Ÿ”œ | ๅผ€ๅ‘ไธญ | | โšก Redis | ๐Ÿ”œ | ๅผ€ๅ‘ไธญ | | ๐Ÿ”ถ Oracle | ๐Ÿ”œ | ่ฎกๅˆ’ไธญ | | โ„๏ธ Snowflake | ๐Ÿ”œ | ่ฎกๅˆ’ไธญ | ## ๐Ÿš€ ๅฟซ้€Ÿๅผ€ๅง‹ ### ็Žฏๅขƒ่ฆๆฑ‚ - Node.js 18+ - Rust (rustup) - [Tauri ไพ่ต–](https://tauri.app/v1/guides/getting-started/prerequisites) ### ๅฎ‰่ฃ… ```bash # ๅ…‹้š†้กน็›ฎ git clone https://github.com/your-repo/easysql.git cd easysql # ๅฎ‰่ฃ…ไพ่ต– npm install # ๅผ€ๅ‘ๆจกๅผ่ฟ่กŒ npm run tauri:dev # ๆž„ๅปบๅบ”็”จ npm run tauri:build ``` ## ๐Ÿ“ธ ็•Œ้ข้ข„่งˆ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ ๐Ÿ—„๏ธ EasySQL โ”€ โ–ก โœ• โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ ๐Ÿ  ไธป้กต โ”‚ ๐Ÿ“ ๆŸฅ่ฏข1 โ”‚ ๐Ÿ“‹ users โ”‚ + โ”‚ โ”‚ + ๆ–ฐๅปบ่ฟžๆŽฅ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ SELECT * FROM users โ”‚ โ”‚ โ”‚ โ”€ ่ฟžๆŽฅ โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ WHERE status = 'active' โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ORDER BY created_at DESC โ”‚ โ”‚ โ”‚ ๐Ÿฌ MySQLๆœฌๅœฐ โ”‚ โ”‚ LIMIT 100; โ”‚ โ”‚ โ”‚ ๐Ÿ˜ PostgreSQL โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ ๐Ÿ“Š SQL Server โ”‚ โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ id โ”‚ name โ”‚ email โ”‚ created_at โ”‚ โ”‚ โ”‚ โ”‚ โ”€ mydb โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ users โ”‚ โ”‚ โ”‚ 1 โ”‚ Alice โ”‚ a@... โ”‚ 2024-01-01 โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ orders โ”‚ โ”‚ โ”‚ 2 โ”‚ Bob โ”‚ b@... โ”‚ 2024-01-02 โ”‚ โ”‚ โ”‚ โ”‚ ๐Ÿ“‹ products โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”‚ โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค โ”‚ โ— ๅฐฑ็ปช ยท 2 ่กŒ (0.05s) EasySQL v2.0 โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` ## ๐Ÿ› ๏ธ ๆŠ€ๆœฏๆ ˆ - **่ฟ่กŒๆ—ถ**: Tauri 2.0 (Rust + WebView) - **ๅŽ็ซฏ**: Rust + SQLx + Tiberius - **ๅ‰็ซฏ**: React 18 + TypeScript 5 - **ๆ ทๅผ**: Tailwind CSS 3 - **ๆž„ๅปบ**: Vite 5 - **็ผ–่พ‘ๅ™จ**: Monaco Editor ## ๐Ÿ“ ้กน็›ฎ็ป“ๆž„ ``` easysql/ โ”œโ”€โ”€ src-tauri/ # Tauri/Rust ๅŽ็ซฏ โ”‚ โ”œโ”€โ”€ src/ โ”‚ โ”‚ โ”œโ”€โ”€ main.rs # ไธป็จ‹ๅบๅ…ฅๅฃ โ”‚ โ”‚ โ”œโ”€โ”€ commands.rs # Tauri ๅ‘ฝไปค โ”‚ โ”‚ โ”œโ”€โ”€ database.rs # ๆ•ฐๆฎๅบ“่ฟžๆŽฅ็ฎก็† โ”‚ โ”‚ โ”œโ”€โ”€ config.rs # ้…็ฝฎ็ฎก็† โ”‚ โ”‚ โ””โ”€โ”€ ssh.rs # SSH ้šง้“ โ”‚ โ”œโ”€โ”€ Cargo.toml โ”‚ โ””โ”€โ”€ tauri.conf.json โ”œโ”€โ”€ src/ # React ๅ‰็ซฏ โ”‚ โ”œโ”€โ”€ components/ # UI ็ป„ไปถ โ”‚ โ”‚ โ”œโ”€โ”€ TitleBar.tsx โ”‚ โ”‚ โ”œโ”€โ”€ Sidebar.tsx โ”‚ โ”‚ โ”œโ”€โ”€ MainContent.tsx โ”‚ โ”‚ โ”œโ”€โ”€ SqlEditor.tsx โ”‚ โ”‚ โ””โ”€โ”€ ConnectionModal.tsx โ”‚ โ”œโ”€โ”€ lib/ โ”‚ โ”‚ โ”œโ”€โ”€ tauri-api.ts # Tauri API ๅฐ่ฃ… โ”‚ โ”‚ โ””โ”€โ”€ hooks.ts # ่‡ชๅฎšไน‰ Hooks โ”‚ โ”œโ”€โ”€ App.tsx โ”‚ โ”œโ”€โ”€ types.ts โ”‚ โ””โ”€โ”€ index.css โ”œโ”€โ”€ index.html โ”œโ”€โ”€ package.json โ”œโ”€โ”€ tailwind.config.js โ”œโ”€โ”€ tsconfig.json โ””โ”€โ”€ vite.config.ts ``` ## โŒจ๏ธ ๅฟซๆท้”ฎ | ๅฟซๆท้”ฎ | ๅŠŸ่ƒฝ | |--------|------| | `Ctrl+Enter` | ๆ‰ง่กŒ SQL | | `Ctrl+S` | ไฟๅญ˜ๆ–‡ไปถ/ไฟๅญ˜ไฟฎๆ”น | | `Ctrl+O` | ๆ‰“ๅผ€ SQL ๆ–‡ไปถ | | `Ctrl+Shift+F` | ๆ ผๅผๅŒ– SQL | | `Ctrl+Q` | ๆ–ฐๅปบๆŸฅ่ฏข | | `Ctrl+W` | ๅ…ณ้—ญๅฝ“ๅ‰ๆ ‡็ญพ | | `Ctrl+F` | ๆœ็ดข๏ผˆไพง่พนๆ /่กจๆ ผ๏ผ‰ | ## ๐Ÿ”ง ้…็ฝฎ่ฏดๆ˜Ž ่ฟžๆŽฅ้…็ฝฎไฟๅญ˜ๅœจ็”จๆˆท้…็ฝฎ็›ฎๅฝ•๏ผš - Windows: `%APPDATA%\easysql\connections.json` - macOS: `~/Library/Application Support/easysql/connections.json` - Linux: `~/.config/easysql/connections.json` ## ๐Ÿค ่ดก็Œฎ ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Request๏ผ ## ๐Ÿ“„ License MIT ---
Made with โค๏ธ using Tauri + React + Rust