Skip to content

About

Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de tauri para poder hacer mas facil las tareas en nuestro sistema

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Tauri plugin network manager

Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de tauri para poder hacer mas facil las tareas en nuestro sistema


Tecnología

Uso: generate-readme-badges.sh

Tipos válidos: tauri-vue Apps Tauri + Vue 3 (Rust, Tauri, Vue 3, TypeScript) rust-service Servicios Rust systemd/D-Bus (Rust, systemd, D-Bus) cpp-plugin Plugins C++ Wayfire (C++, Meson, Wayfire) meson-c Módulos C WirePlumber (C, Meson, WirePlumber) meson-cpp Plugins C++ genéricos Meson (C++, Meson)

Ejemplos: ./generate-readme-badges.sh tauri-vue ./generate-readme-badges.sh rust-service > tech-badges.md

Estado

CI Versión Licencia Cobertura Quality Gate Tamaño repo


Descripción

Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de tauri para poder hacer mas facil las tareas en nuestro sistema

Para el usuario: Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de tauri para poder hacer mas facil las tareas en nuestro sistema

Integración VasakOS: Integra con el ecosistema VasakOS vía D-Bus y configuración compartida.


Arquitectura (diagramas)

Copia y pega la plantilla que necesites, descomenta y adapta.

Flujo de datos

<!--
graph TD
    A[Entrada: Teclado / Ratón / D-Bus / Sistema] --> B[Procesamiento: Core Rust + Tauri Commands]
    B --> C[Salida: UI actualizada / Acciones del sistema]
    style A fill:#e1f5fe
    style C fill:#e8f5e9
-->
Loading

Componentes internos

<!--
flowchart LR
    subgraph App[Tauri plugin network manager]
        UI[Frontend Vue 3 + vue-libvasak]
        Core[Core Rust: lógica principal]
        IPC[Tauri Commands / Eventos]
        System[Systemd / D-Bus / PipeWire / Wayland]
    end
    UI --> IPC
    IPC --> Core
    Core --> DBus[(D-Bus / zbus)]
    Core --> System
    style UI fill:#f3e5f5
    style Core fill:#e3f2fd
    style DBus fill:#fff3e0
    style System fill:#fce4ec
-->
Loading

Integración en el sistema VasakOS

<!--
C4Context
    title Tauri plugin network manager en VasakOS
    Person(usuario, "Usuario", "Persona que usa el sistema")
    System_Boundary(c1, "VasakOS") {
        System(app, "Tauri plugin network manager", "Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de ta")
        System_Ext(settings, "vasak-settings", "Configuración central")
        System_Ext(keyring, "vasak-keyring", "Secrets y claves")
        System_Ext(accounts, "vasak-accounts", "Cuentas e identidad")
        System_Ext(permissions, "vasak-permissions", "Permisos y portales")
    }
    System_Ext(systemd, "systemd", "Gestión de servicios")
    System_Ext(dbus, "D-Bus", "Bus de mensajes del sistema")
    System_Ext(wayland, "Wayland / Wayfire", "Compositor")
    System_Ext(pipewire, "PipeWire", "Multimedia")
    Rel(usuario, app, "Usa")
    Rel(app, settings, "Lee/escribe config")
    Rel(app, keyring, "Guarda/lee secrets")
    Rel(app, accounts, "Identidad de cuenta")
    Rel(app, permissions, "Solicita permisos")
    Rel(app, systemd, "Activación / sockets")
    Rel(app, dbus, "Expone / consume interfaces")
    Rel(app, wayland, "Superficies / protocolos")
    Rel(app, pipewire, "Streams de audio/video")
-->
Loading

Instalación

Arch Linux (repo oficial)

pacman -S vasak-tauri-plugin-network-manager

Debian / Ubuntu (.deb)

wget https://github.com/Vasak-OS/tauri-plugin-network-manager/releases/download/v{{VERSION}}/vasak-tauri-plugin-network-manager_{{VERSION}}_amd64.deb
sudo apt install ./vasak-tauri-plugin-network-manager_{{VERSION}}_amd64.deb

Desde fuente

git clone https://github.com/Vasak-OS/tauri-plugin-network-manager.git
cd tauri-plugin-network-manager

# Build Rust (plugin Tauri)
cargo build --release --locked

# Tests
cargo test --locked

# Publicar (crates.io + npm)
cargo publish --locked
npm publish

Flatpak / AppImage

Placeholder: añadir cuando exista paquete Flatpak o AppImage oficial.

Uso desde npm

Publicado como @vasakgroup/tauri-plugin-network-manager en npm.

Instalación

# Con bun (recomendado)
bun add @vasakgroup/tauri-plugin-network-manager

# Con npm
npm install @vasakgroup/tauri-plugin-network-manager

# Con pnpm
pnpm add @vasakgroup/tauri-plugin-network-manager

Uso básico

import { tauri_plugin_network_manager } from '@vasakgroup/tauri-plugin-network-manager';

// Inicializar el plugin en tu app Tauri
const plugin = tauri_plugin_network_manager();

// Usar las APIs expuestas
// Ver documentación completa en: https://docs.vasakos.org/plugins/network-manager

Documentación completa


Uso rápido

# Se lanza automáticamente (systemd --user) o manualmente:
tauri-plugin-network-manager

Atajos / flags principales

Acción Comando / Tecla
Acción principal tauri-plugin-network-manager
Configuración tauri-plugin-network-manager --config
Ayuda tauri-plugin-network-manager --help

Captura: assets/demo.gif (placeholder — sustituir por GIF real)


Configuración

Archivo de configuración

~/.config/vasak/tauri-plugin-network-manager.toml

Variables de entorno

Variable Descripción Por defecto
VASAK_DEBUG Activa logs de depuración en consola false
VASAK_PROFILE Perfil de rendimiento: balanced, performance, power-save balanced

Integración con tauri-plugin-config-manager

  • Esquemas de color: respeta --ui-primary, --ui-surface, --ui-focus, --ui-on-surface, --ui-border
  • Tema de iconos: usa el tema del sistema (vasakos-icon-theme) vía vicon lookup
  • Radio de bordes: variable CSS --ui-radius del esquema activo (por defecto 12px)
  • Fuentes: --ui-font-family, --ui-font-size-base desde el esquema

Desarrollo

Requisitos

  • Rust: rustup toolchain estable (rust-toolchain.toml fija la versión)
  • Node / bun: bun ≥ 1.1 (nunca npm/yarn/pnpm para apps Tauri)
  • Sistema: pkg-config, libgtk-3-dev, libwebkit2gtk-4.1-dev, libssl-dev
  • libssl-dev para TLS, dependencias específicas del plugin

Dependencias de desarrollo

Sistema (paquetes Arch / Debian / Fedora)

base-devel, pkgconf, libssl-dev, libwebkit2gtk-4.1-dev, libgtk-3-dev, libayatana-appindicator3-dev, librsvg2-dev, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, libpipewire-0.3-dev, libwireplumber-0.5-dev, libdbus-1-dev, libudev-dev, libxkbcommon-dev, libwayland-dev, meson, ninja, clang, lld

Rust

rustup → stable + rustfmt + clippy

Node

Solo bun (nunca npm/yarn/pnpm para apps Tauri). bun --version ≥ 1.1

Herramientas CLI

just (command runner), cargo-binstall (opcional), cargo-llvm-cov (para cobertura)

Correr la app en desarrollo

# Frontend (Vite dev server + Tauri dev)
bun run tauri dev

# Solo frontend (Vite)
bun run dev

# Solo backend (cargo watch)
cargo watch -x "run --bin tauri-plugin-network-manager"

Compilar / Build de release

# Build completo (frontend + backend + bundle)
bun run tauri build

# Solo frontend (para testear bundle después)
bun run build

# Solo backend Rust (binario optimizado)
cargo build --release --locked

# Paquetes nativos
# Arch: makepkg -sf en PKGBUILDS/tauri-plugin-network-manager/
# Debian: cargo deb --no-build --target-dir src-tauri/target/release/debian

Targets principales

# Desarrollo (Tauri dev server + hot reload)
bun run dev

# Build producción
bun run build

# Solo frontend
bun run build:frontend

# Solo backend Rust
cargo build --release --locked

# Lint + tipos (pre-commit / CI)
bunx --bun biome check .
bunx vue-tsc --noEmit
cargo fmt --check

Pruebas

# Tests Rust
cargo test -p tauri-plugin-network-manager --locked

# Tests JS (si tiene bindings)
bun test

Convención de commits

Conventional Commits:

<tipo>(<ámbito>): <descripción corta>

[cuerpo opcional]

[pie opcional: Closes #N]

Tipos habituales: feat, fix, bugfix, docs, ci, chore, security, refactor, perf, test.

Cómo abrir PR

  1. Rama desde origin/main:
    git worktree add -b feat/tema ~/wt/tauri-plugin-network-manager-tema origin/main
  2. Prefijos de rama: fix/, feat/, bugfix/, docs/, ci/, chore/, security/
  3. Escribe el fix → qa escribe las pruebas (fallan sin el fix) → suite verde → abre PR
  4. Al abrir PR, cuatro cosas obligatorias:
    • Asignado a JoaquinDecima
    • Etiqueta enhancement o bug (+ ci / dependencies si aplica)
    • Añadido al proyecto «VasakOS Roadmap»
    • Status In Progress

Arquitectura (texto)

Crates / módulos principales

| tauri-plugin-network-manager | Plugin Tauri: Rust backend + JS bindings |

Interfaces D-Bus / zbus expuestas

| org.vasak.network-manager | Métodos específicos del plugin | Funcionalidad expuesta a apps Tauri |

Puntos de extensión

  • Plugins: Sistema de plugins modular
  • Hooks: Hooks de ciclo de vida
  • API pública Rust: API pública del crate principal

Features / Cargo features

Feature Descripción Default
async API asíncrona (futures) ✓
blocking API bloqueante para compatibilidad

Y para apps Tauri+Vue: features del tauri.conf.json → bundle / plugins / allowlist (capabilities).


Pruebas y calidad

  • Cobertura objetivo: ≥ 80 % del código nuevo (SonarCloud Quality Gate)
  • Informes: GitHub Actions → pestaña SonarCloud Code Analysis → enlace a SonarCloud
  • Añadir pruebas: ver AGENTS.md sección 9 (mapa de repos y comandos de prueba)
  • Regla: toda corrección lleva prueba escrita por qa que falla sin el fix

Contribuir


Contribuidores

Actualizado automáticamente en CI — muestra los avatares de quienes han aportado código a este repo.

JoaquinDecima

Ver todos los contribuidores


Donadores / Sponsors

Sponsors

Backers: Actualizado automáticamente en CI desde GitHub Sponsors / OpenCollective / Polar.

💖 Donar al proyecto


Licencia

MIT — Copyright © 2026 Vasak-OS Contributors

Ver licencia completa

About

Administrar las redes puede ser tedioso, por eso mismo creamos este plugin de tauri para poder hacer mas facil las tareas en nuestro sistema

Topics

Resources

Security policy

Stars

0 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages