Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nodo

Medidor de velocidad de red nativo para macOS (SwiftUI), con interfaz clara al estilo Tahoe. Mide contra los endpoints públicos de Cloudflare: sin dependencias externas, sin binarios de terceros y sin cuentas — solo Swift y el SDK del sistema.

macOS 13+ Swift 5.9 Licencia MIT

Qué mide

Métrica Cómo se obtiene
Descarga 6 carriles paralelos contra GET /__down?bytes=100000000
Subida 4 carriles paralelos contra POST /__up con bloques de 20 MB
Latencia 20 sondas GET /__down?bytes=0, se reporta la mediana y el mínimo
Jitter Promedio de la diferencia absoluta entre sondas consecutivas
Latencia bajo carga Sondas de latencia lanzadas mientras la descarga satura el enlace
Bufferbloat Cuánto sube la latencia al saturar, con calificación A–F

El resultado principal es la velocidad sostenida: se descarta el primer 30 % de cada fase (arranque lento de TCP) y se divide el total de bytes de la ventana restante entre su duración. El pico se muestra aparte para no inflar la cifra principal.

Uso

./build.sh            # compila y deja dist/Nodo.app
./build.sh --install  # además la copia a /Applications

Luego:

open dist/Nodo.app

Atajos: ⌘R inicia el test, ⌘. lo cancela.

Requisitos

Solo las Command Line Tools de Xcode — no hace falta Xcode completo:

xcode-select --install

Nota: en el SDK de macOS 26+ el atributo @State pasó a ser un macro cuyo plugin (SwiftUIMacros) solo se distribuye con Xcode. Para que el proyecto compile con las Command Line Tools, el estado local de la vista declara a mano el almacenamiento que ese macro generaría (ver ContentView.swift).

Historial

Cada medición se guarda en ~/Library/Application Support/Nodo/history.json y se puede exportar a CSV desde el panel lateral o con el menú Test → Exportar historial a CSV.

Estructura

Sources/Nodo/
  NodoApp.swift           punto de entrada y menús
  ContentView.swift       pantalla principal y panel de historial
  SpeedTestEngine.swift   orquestación del test y cálculo de velocidad
  TransferDelegate.swift  carriles de transferencia y conteo de bytes
  SpeedGauge.swift        velocímetro con escala por tramos
  Components.swift        tarjetas, gráfica en vivo y paleta clara
  HistoryStore.swift      persistencia y exportación
  Models.swift            modelos y formato
Tools/MakeIcon.swift      genera el icono .icns (monograma) con Core Graphics
build.sh                  compila y ensambla el bundle .app

Privacidad

La app solo habla con speed.cloudflare.com. El endpoint /meta devuelve tu IP pública, tu ASN/ISP y el centro de datos de Cloudflare que te atendió; eso se muestra en pantalla y se guarda en el historial local. Nada sale de tu Mac.

Licencia

MIT.

About

Speedtest nativo de macOS (SwiftUI) que mide descarga, subida, latencia, jitter y bufferbloat contra Cloudflare. Compila sin Xcode.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages