Limni
Описание
A modern desktop application for internet exploration built with Tauri v2 and Svelte 5
Языки
- Svelte46%
- TypeScript34,6%
- Rust15,6%
- JavaScript2,9%
- Makefile0,6%
- Batchfile0,2%
- Остальные0,1%
9 месяцев назад
8 месяцев назад
8 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
README.md
English | Русский | Português (BR)
The project is in active development. It's still far from MVP, but it can already be manually assembled and tested...
A modern desktop application for internet exploration built with Tauri v2 and Svelte 5, featuring native WebViews instead of iframes.
⚡ Key Features
🚀 Native WebViews
- Full-featured native WebViews instead of iframes for each tab
- High performance thanks to system WebView usage
- Authentic user experience with isolated contexts for each tab
- OS-level security with system WebView sandboxing
📑 Multi-tab Navigation
- Open/close tabs with automatic WebView management
- Switch between tabs with show/hide of corresponding WebViews
- Loading indicators for each tab
- Smart memory management when closing tabs
🧭 Web Navigation
- Back/Forward buttons with history for each tab
- Address bar with auto-detection of URL/search
- Page reload functionality
- Navigation history for each WebView
🔖 Bookmarks and History
- Local bookmark storage
- Complete visit history with date grouping
- History search functionality
- Visit counter
⚙️ Settings
- Theme options (light/dark/system)
- WebView security settings
- Homepage management
- Search engine selection
🏗️ Architecture
Backend (Rust + Tauri v2)
Frontend (Svelte 5)
- Reactive state management with runes (derived, $effect)
- WebViewManager - native WebView management
- Asynchronous architecture for Tauri API interaction
- Modern UI with CSS variables for theming
🛠️ Technology Stack
- Tauri v2 - Cross-platform runtime
- Svelte 5 - Reactive frontend framework
- TypeScript - Typed JavaScript
- Rust - Backend programming language
- Native WebView - System WebView (WebView2/WebKit/Blink)
🚀 Installation and Running
Requirements
- Node.js 18+
- Rust 1.70+
- System dependencies for Tauri
Development Mode
Production Build
🧪 Testing
Unit Tests
E2E Tests
🎯 Tauri Application Tests (Рекомендуется)
Для тестирования вашего нативного Tauri приложения:
🌐 Browser Tests (Веб-версия)
Для тестирования веб-версии в браузерах:
🚗 WebDriver Tests
Rust Tests
All Tests
⚠️ Важно для Tauri тестов
- Tauri тесты запускают ваше нативное приложение автоматически
- Приложение собирается в release режиме при первом запуске
- Используется remote debugging через WebView2 на порту 9222
- Тесты выполняются последовательно для стабильности
📁 Project Structure
browser/
├── src/ # Frontend (Svelte)
│ ├── lib/
│ │ ├── components/ # Svelte components
│ │ │ ├── WebViewManager.svelte # WebView management
│ │ │ ├── TabBar.svelte # Tab bar
│ │ │ ├── Toolbar.svelte # Toolbar
│ │ │ └── ...
│ │ ├── stores/ # State management
│ │ │ └── browser.svelte.ts
│ │ └── types/ # TypeScript types
│ │ └── browser.ts
│ └── routes/ # SvelteKit routes
├── src-tauri/ # Backend (Rust)
│ ├── src/
│ │ └── lib.rs # WebView commands and logic
│ ├── capabilities/ # Tauri permissions
│ └── tauri.conf.json # Configuration
└── package.json
🎯 Features
✅ Implemented
- Native WebViews for each tab
- Multi-tab navigation
- Asynchronous Tauri API interaction
- Bookmark system
- Visit history
- Application settings
- Address bar with search
- Theme support
🔄 Future Plans
- Data synchronization between devices
- Extensions and plugins
- Advanced security settings
- Data import/export
- Keyboard shortcuts
- Context menus
🤝 Contributing
- Fork the repository
- Create a feature branch (
)git checkout -b feature/amazing-feature - Commit your changes (
)git commit -m 'Add amazing feature' - Push to the branch (
)git push origin feature/amazing-feature - Open a Pull Request
📄 License
This project is licensed under the Limni Attribution License (LAL). See the file for details.LICENSE
🙏 Acknowledgments
- Tauri Team for the amazing framework — https://tauri.app
- Svelte Team for the reactive frontend framework — https://svelte.dev
- Rust Community for the reliable programming language — https://www.rust-lang.org
- Phosphor Icons for stylish icons — https://phosphoricons.com
Limni - Showcasing the power of native WebViews in modern desktop applications! 🚀
Created by FerrisMind
