Limni

0

Описание

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 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
9 месяцев назад
README.md

Limni App Icon


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 (state,state, 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

  1. Fork the repository
  2. Create a feature branch (
    git checkout -b feature/amazing-feature
    )
  3. Commit your changes (
    git commit -m 'Add amazing feature'
    )
  4. Push to the branch (
    git push origin feature/amazing-feature
    )
  5. Open a Pull Request

📄 License

This project is licensed under the Limni Attribution License (LAL). See the

file for details.

🙏 Acknowledgments


Limni - Showcasing the power of native WebViews in modern desktop applications! 🚀

Created by FerrisMind