updated README and License
This commit is contained in:
86
README.md
86
README.md
@@ -1,7 +1,85 @@
|
||||
# Tauri + Yew
|
||||
# 📰 Maltemedia
|
||||
|
||||
This template should help get you started developing with Tauri and Yew.
|
||||

|
||||

|
||||
|
||||
## Recommended IDE Setup
|
||||
A modern, fast, and secure application to stay updated with the latest news from different worlds — from decentralized social networks to AI-generated insights.
|
||||
|
||||
[VS Code](https://code.visualstudio.com/) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
|
||||
---
|
||||
|
||||
## ✨ Key Features
|
||||
|
||||
- **📡 Nostr Feed**: Browse decentralized posts from various relays (like Damus and Snort) anonymously using secure, temporary keys.
|
||||
- **🤖 AI-Powered News**: Get instant tech news summaries generated by powerful AI models via Groq (Llama 3) or OpenRouter.
|
||||
- **📻 RSS Reader**: Follow your favorite news sources (like NASA or Heise) by adding custom RSS/Atom feeds.
|
||||
- **📝 Markdown Support**: Enjoy a clean reading experience with full Markdown rendering for all posts and articles.
|
||||
- **🔒 Private & Secure**: Built with Rust and Tauri v2 for a native, high-performance experience with a minimal footprint.
|
||||
|
||||
---
|
||||
|
||||
## 📂 Project Structure
|
||||
|
||||
The project is split into a **Frontend** (UI) and a **Backend** (System) layer.
|
||||
|
||||
### 🌓 Frontend (`src/`)
|
||||
Built with **Yew** (Rust/Wasm) for a reactive and fast interface.
|
||||
|
||||
| File/Folder | Purpose |
|
||||
| :--- | :--- |
|
||||
| `main.rs` | Entry point for the WebAssembly application. |
|
||||
| `app.rs` | Handles client-side routing and the main layout shell. |
|
||||
| `navbar/` | Contains the side navigation component. |
|
||||
| `pages/home.rs` | The UI for the Nostr feed display. |
|
||||
| `pages/news.rs` | The UI for AI News, RSS feeds, and configuration settings. |
|
||||
|
||||
### 🌑 Backend (`src-tauri/`)
|
||||
Built with **Rust** to handle system-level tasks and networking.
|
||||
|
||||
| File/Folder | Purpose |
|
||||
| :--- | :--- |
|
||||
| `src/main.rs` | The main entry point for the desktop executable. |
|
||||
| `src/lib.rs` | Configures Tauri plugins and registers all backend commands. |
|
||||
| `src/home.rs` | Logic for connecting to Nostr relays and fetching posts. |
|
||||
| `src/news.rs` | Logic for parsing RSS feeds and calling AI APIs (Groq/OpenRouter). |
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Tech Stack
|
||||
|
||||
- **Framework**: [Tauri v2](https://tauri.app/) (Desktop Bridge)
|
||||
- **Frontend**: [Yew](https://yew.rs/) (Rust to WebAssembly)
|
||||
- **Styling**: Vanilla CSS (Modern & Responsive)
|
||||
- **Networking**: `reqwest` & `feed-rs`
|
||||
- **Protocol**: `nostr-sdk` for decentralised communication
|
||||
- **Config**: RON (Rusty Object Notation) for local settings
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Customization & Extension
|
||||
|
||||
### How to add a new Page
|
||||
1. **Create the UI**: Add a new `.rs` file in `src/pages/`.
|
||||
2. **Export it**: Add your page to `src/pages/mod.rs`.
|
||||
3. **Add Route**: Define a new path in `src/app.rs` inside the `Route` enum and `switch` function.
|
||||
|
||||
### How to add a Backend Command
|
||||
1. **Write the Logic**: Create a function in `src-tauri/src/` (e.g., in a new module).
|
||||
2. **Use `#[tauri::command]`**: Mark your function so it can be called from the frontend.
|
||||
3. **Register it**: Add the function to the `invoke_handler` in `src-tauri/src/lib.rs`.
|
||||
|
||||
### How to change the Design
|
||||
- Most visual styles are defined in `styles.css` in the project root.
|
||||
- The Navbar layout can be adjusted in `src/navbar/`.
|
||||
|
||||
---
|
||||
|
||||
*Made with ❤️ and Rust.*
|
||||
|
||||
---
|
||||
|
||||
## ⚖️ License
|
||||
|
||||
This project is licensed under the **GNU GPL v3**.
|
||||
See the [LICENSE](LICENSE) file for the full license text.
|
||||
|
||||
*Copyright (c) 2026 Bytemalte*
|
||||
Reference in New Issue
Block a user