Ir al contenido
RustDiff
1.0.6 · versión estable

Diff semántico para JSON , XML & SQL

Un comparador de escritorio que lee la estructura — claves, elementos de array, nodos y atributos XML, sentencias SQL — en lugar de líneas de texto. Funciona offline: sin cuenta, sin rastreo y nada sale de tu equipo.

Flatpak · Flathub · .deb · APT · macOS · GPL-3.0-or-later

Instalación en un comando

$ flatpak install flathub com.digitalgex.RustDiff

Cualquier distribución. Se actualiza con flatpak update.

Todos los canales, desde Flathub hasta compilar desde el código fuente, están más abajo. Ver todas las formas de instalar

Por qué offline

Tus documentos no salen de tu equipo

Comparar credenciales, tokens, certificados o datos de clientes en un diff online significa subirlos al servidor de otra persona. RustDiff no hace eso: no hay servidor, no hay subida y no hay telemetría. Nada sale de tu equipo.

No rastrea y no pide cuenta

Sin analíticas, sin inicio de sesión y sin “primero crea un proyecto”. Instalás, abrís dos archivos y comparás. Eso es todo el flujo.

Lo sensible sigue siendo sensible

Claves de API, cadenas de conexión, claves privadas, datos personales: el documento solo viaja entre tu disco y la ventana de la app.

La interfaz no puede leer tus archivos

La interfaz en React solo llama comandos Rust tipados, así que nunca toca el sistema de archivos. El parseo, el historial y las preferencias viven en el núcleo en Rust.

El historial queda en tu disco

Las sesiones guardadas viven en un archivo SQLite local (~/.local/share/rustdiff/history.db). Si borrás ese archivo, el historial desaparece: nadie más tiene una copia.

Código abierto bajo GPL-3.0-or-later: podés leer cada línea antes de confiar en ella.

Funciones

Un motor de diff que entiende documentos

JSON, XML y SQL se comparan como estructura, con comparación línea por línea para texto plano. Alrededor hay un visor pensado para manejarse con el teclado.

Diff semántico

Claves, elementos de array, nodos XML, atributos, texto y sentencias SQL se emparejan por significado. Una clave reordenada no es un cambio de archivo completo.

Editores lado a lado

CodeMirror 6 con resaltado de sintaxis y resaltado a nivel de carácter justo en el tramo que cambió.

Panel de diferencias

Ctrl+D

Filtrá por añadidos, eliminados o modificados, hacé clic en una fila para saltar al documento y avanzá con anterior y siguiente.

Vista de grafo

Ctrl+G

El documento izquierdo como grafo de nodos interactivo en un canvas: desplazar, zoom, ajustar, buscar un nodo e inspeccionarlo.

Búsqueda en los documentos

Ctrl+F

Buscá texto con contador de coincidencias, siguiente y anterior, y vuelta al inicio al llegar al final.

Comparar mientras escribís

La comparación automática mantiene el resultado al día, y Ctrl+Enter compara al instante cuando lo querés ya.

Exportación

Ctrl+E

Un .txt plano para un log o un ticket, o un .html con estilos para compartir o archivar el reporte.

Historial de sesiones

Ctrl+H

Sesiones guardadas en SQLite local: con búsqueda, paginadas, restaurables y con borrado por entrada o completo.

Opciones del visor

Las opciones que ya esperás de una herramienta de revisión

RustDiff es opinado donde importa y configurable donde trabajás. Estos son menús y atajos reales, no una lista de deseos.

Formato del documento

  • Auto-detectar, JSON, XML, SQL o texto plano desde la barra
  • Forzás el formato cuando el documento arranca de forma ambigua
  • Pretty-print de los dos paneles con Ctrl+Shift+F

Vistas

  • Tema: seguir al sistema, claro u oscuro
  • Tamaño del texto de la interfaz del 60 % al 200 % (Ctrl++, Ctrl+-, Ctrl+0), recordado entre sesiones
  • Idioma que cambia en vivo entre inglés y español

Diferencias

  • Filtros para añadidos, eliminados y modificados
  • Columna de ruta con navegación por clic
  • Diferencia anterior y siguiente; el panel se redimensiona y se puede plegar

Grafo

  • Acercar, alejar y ajustar el grafo a la vista
  • Buscar un nodo e inspeccionar su detalle
  • Las flechas desplazan, + y − hacen zoom, 0 ajusta y Escape cierra el detalle

JSON escapado

  • Detecta JSON con comillas escapadas, como {"a":1}
  • Ofrece “Desescapar y comparar”, nunca modifica un documento que ya es válido
  • Descartar la sugerencia la mantiene fuera para ese texto

Exportación e historial

  • Exportá el resultado como .txt o .html con estilos
  • Buscá en el historial, cargá más, borrá una entrada o limpiá todo
  • Aviso de cambios sin guardar al cerrar: guardar en historial, exportar o cerrar

Todas las opciones son locales. Ninguna te pide iniciar sesión.

Por dentro

Cómo se ve comparar de verdad

Ventana principal de RustDiff comparando dos documentos JSON lado a lado
Dos documentos, un diff semántico: lo añadido, lo eliminado y lo modificado se marcan donde ocurre.
Tabla de diferencias con filtros por tipo y columna de ruta
El panel de diferencias filtra por tipo y salta a la ruta exacta con un clic.
Panel lateral de historial con comparaciones guardadas
El historial queda en un archivo SQLite local: buscalo, restaurá una sesión y borrá lo que ya no necesitás.

Instalar

Elegí el canal que ya usás

Linux y macOS llevan el mismo binario con el mismo motor. Windows todavía no está soportado.

Flatpak · Flathub

Recomendado en Linux
$ flatpak install flathub com.digitalgex.RustDiff

Trae su propio runtime de GNOME con WebKitGTK, así que las versiones de librerías de tu distribución no importan. Se actualiza con flatpak update.

Abrir en Flathub ↗

Paquete Debian · .deb

Ubuntu 24.04+ · Debian 13+
$ sudo apt install ./rustdiff_*.deb

amd64 y arm64. Descargá el paquete desde la página de releases, o agregá el repositorio APT de abajo para actualizar con un apt upgrade normal.

Descargar el .deb ↗

Repositorio APT

Firmado, alojado en GitHub Pages
$ curl -fsSL https://jereok91.github.io/rustdiff/KEY.gpg | sudo tee /usr/share/keyrings/rustdiff-archive-keyring.gpg >/dev/null
$ echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/rustdiff-archive-keyring.gpg] https://jereok91.github.io/rustdiff stable main" | sudo tee /etc/apt/sources.list.d/rustdiff.list >/dev/null
$ sudo apt update && sudo apt install rustdiff

Se agrega una vez y después se actualiza con el mismo apt upgrade que usás para todo lo demás.

macOS · cask de Homebrew

Apple Silicon e Intel
$ brew install --cask jereok91/rustdiff/rustdiff-app

Cada release también publica un .dmg. La app está firmada ad-hoc, así que en el primer arranque usá clic derecho → Abrir, o corré xattr -cr /Applications/RustDiff.app.

Descargar el .dmg ↗

Instalador de un comando

En Debian/Ubuntu instala el paquete, en otras distros compila
$ curl -fsSL https://raw.githubusercontent.com/jereok91/rustdiff/main/install.sh | bash

Necesita Rust 1.85+, Node.js 20+ y pnpm cuando compila desde el código fuente; en Debian y Ubuntu solo instala el .deb del release.

Compilar desde el código fuente

Rust 1.85+ · Node.js 20+ · pnpm 10
$ cd desktop && pnpm install && pnpm tauri build

En Linux también necesitás los paquetes de desarrollo de WebKitGTK 4.1 y un toolchain de C. El binario queda en target/release/rustdiff.

Requisitos de compilación ↗

cargo install rustdiff quedó retirado: en crates.io sigue la versión vieja con GTK, la 0.4.x. Usá cualquiera de los canales de arriba.

1.0.6 · GPL-3.0-or-later

Primero el teclado

Atajos para cada acción principal

Pulsá Ctrl+? dentro de la app para ver esta lista sin soltar el teclado.

  • Abrir el documento izquierdo Ctrl+O
  • Abrir el documento derecho Ctrl+Shift+O
  • Comparar ahora Ctrl+Enter
  • Pretty-print de los dos documentos Ctrl+Shift+F
  • Buscar en los documentos Ctrl+F
  • Mostrar u ocultar la vista de grafo Ctrl+G
  • Mostrar u ocultar el panel de diferencias Ctrl+D
  • Guardar la sesión en el historial Ctrl+S
  • Mostrar u ocultar el historial Ctrl+H
  • Exportar como .txt Ctrl+E
  • Aumentar, reducir o restablecer el texto de la interfaz Ctrl++ / Ctrl+- / Ctrl+0
  • Ver todos los atajos Ctrl+?