Servidor de archivos en Rust de 5 MB creado para compartir archivos entre redes locales
(saibius.com)Mientras desarrollo, a menudo me surge la necesidad de compartir archivos de forma temporal.
Por ejemplo, para compartir archivos rápidamente en local (como checkpoints de IA o datos de entrenamiento). Como estos archivos suelen ser grandes, la transferencia con servicios de nube existentes es lenta, y cosas como un servidor en Python a veces explotan (?), así que quise crear un servidor local de archivos que se pudiera compartir temporalmente con Curl/Wget.
Si tuviera que resumir sus características, serían unas 4 principalmente.
Primero: multiplataforma. – La verdad es que también lo hice por comodidad propia, pero para alguien como yo que va y viene entre Linux y Windows, no podía renunciar al deseo de usar el mismo comando…
Segundo: Web UI – Incluye por defecto un pequeño servidor web estilo Apache, para que los usuarios puedan descargar archivos desde la carpeta compartida o ver directamente algunos archivos compatibles con el navegador (html, txt, etc.).
Tercero: no requiere instalar un runtime adicional. – Al principio consideré cosas como un servidor con Express, pero como suelo usar LXC y similares, me resultaba incómodo tener que instalar por separado runtimes como Node. En Windows también era molesto tener que configurar todo cada vez que levantaba una VM.
Cuarto: servidor de archivos de menos de 5 MB – Quité todo excepto la “transferencia de archivos”, así que el tamaño real del archivo quedó por debajo de 5 MB (el más grande es Linux x86 con 4.12 MB, compilado con base en la versión 1.0.0).
Es un programa que realmente estoy usando yo mismo, y después de crearlo y usarlo, me resulta práctico para compartir temporalmente dentro de la red interna archivos ISO, imágenes grandes o PDFs.
Ejemplo para compartir una carpeta: ./saibius --file ./share
Sitio web: https://saibius.com/
GitHub: https://github.com/saibius/docs
P. D. Se vende por 4,900 wones, pero estoy ofreciendo claves gratis a las primeras 10 personas.
Si entran al enlace https://saibius.com/redeem?key=SAIBIUS-2026-R1 se completa automáticamente :)
20 comentarios
Parece que es algo como copyparty.
Hola
¿Están teniendo un buen día?
Tuve algo que hacer durante el fin de semana y por eso tardé en revisarlo..
El propósito básico fue diseñado de forma similar a Copyparty.
En el momento del desarrollo no sabía que existía un proyecto así, y me enteré por los comentarios.
Si tuviera que decir cuál es la diferencia,
en nuestro caso de uso a veces también se utiliza en servidores de red interna donde es difícil instalar un runtime por separado,
así que una característica es que el dispositivo que va a compartir no requiera un runtime adicional separado (por ejemplo, un runtime de Python, paquetes extra, etc.).
La mayoría de los servidores incluyen Python, pero en nuestro entorno se opera solo con paquetes mínimos, como LXC, así que creo que esta parte puede variar según el entorno y el caso de uso.
Saibius seguirá mejorando en el futuro.
Gracias por su interés.
Que tengan un buen día :)
¿Tienen pensado dar soporte más adelante también para el entorno
termuxde Android?Cuando necesito enviar archivos desde Android a otro entorno, si se puede usar
croc, usocroc; y si hay que acceder desde el navegador web o concurlowget, normalmente uso Copyparty, pero para compartir algo de forma simple esto también se ve bastante bien.¡Hola!
¿Están disfrutando de este buen feriado?
¡En la actualización menor 1.0.0.11 que estaban esperando se agregó la compilación para Termux(Android)!
La actualización se lanzó el 12 de febrero, y como el trabajo de estabilización tomó tiempo, recién ahora puedo dejar esta respuesta.
Saibius seguirá mejorando de aquí en adelante.
Gracias por su interés.
Que tengan un buen día :)
¡Oh, gracias por la información!
¡Hola!
¿Están teniendo una buena noche?
Planeamos distribuir la actualización menor 1.0.0.11, que muchos estaban esperando, agregando una compilación para Termux (Android).
Aunque se retrasó un poco más de lo previsto inicialmente, confirmamos que funciona correctamente con base en la versión más reciente de Play Store.
Nos estamos preparando para una distribución segura, así que les agradeceríamos que esperaran un poco más.
Saibius seguirá mejorando en el futuro.
Gracias por su interés.
Que tengan un buen día :)
Hola
¿Estás teniendo una buena noche?
En el entorno de Android con Termux que mencionaste no se han realizado pruebas oficiales, pero está incluido en los planes para desarrollo y pruebas adicionales más adelante.
En cuanto terminen las pruebas, te responderé rápidamente :b
Y gracias por contarme sobre buenas herramientas como Copyparty y Croc; tendré que investigar más a fondo este tipo de herramientas...
Saibius seguirá mejorando en el futuro.
Gracias por tu interés.
Que tengas un buen día :)
Para compartir documentos web dentro de la empresa, yo uso el servidor web integrado de Python.
Hola
¿Están teniendo una buena tarde?
¡La verdad es que el servidor web de Python también me parece una herramienta muy buena!
De hecho, nosotros también estábamos usando el servidor web integrado de Python, pero como además de documentos web manejamos datos de entrenamiento de IA y archivos de checkpoints (
.safetensors,.ckpt, etc.), a veces con archivos de cientos de GB a varios TB la conexión se cortaba o se volvía inestable.Como alternativa también operamos un NAS, pero en el caso de archivos grandes, en definitiva resulta más rápido enviarlos directamente desde el dispositivo donde están ubicados que hacerlo por la ruta subida > servidor > descarga, así que por eso hicimos este programa; al final, creo que la mejor herramienta es la que se adapta al entorno de cada quien.
Que tengas un buen día :)
Para ese uso, parece una buena elección. ¿Tiene alguna función de cifrado? ¿Sería posible guardar los archivos cifrados y descifrarlos al compartirlos?
¡Hola! Gracias por tu buena pregunta.
En la versión actual no se admiten la "función de cifrado" ni la "función de almacenamiento / cifrado" que mencionas.
De hecho, lo evaluamos en las primeras etapas del desarrollo, pero como es una herramienta especializada en la "transferencia temporal de archivos dentro de una red interna", y dado que en entornos donde se comparten grandes volúmenes de datos la sobrecarga del cifrado afecta la velocidad de transferencia,
lamentablemente decidimos excluirlo.
En nuestro caso, cuando necesitamos cifrado, solemos aprovechar la función de almacenamiento cifrado del NAS.
Gracias por tu interés en Savious.
Que tengas un buen día :)
[Actualización] Aviso de agotamiento de claves gratuitas
¡Muchas gracias por el gran interés!
Al 22 de enero de 2026 a las 13:10, todas las claves gratuitas se han agotado.
[Claves agotadas]
Clave gratuita inicial (R1), U1 y C1 distribuidas posteriormente
Gracias a su apoyo, seguiremos haciendo que
Saebius continúe mejorando aún más.
Gracias.
[Actualización] ¡Muchas gracias por el gran interés!
Las claves gratuitas iniciales se agotaron rápidamente y algunas personas tuvieron errores al canjearlas.
Corregimos el problema y ofrecemos 20 adicionales.
https://saibius.com/redeem?key=SAIBIUS-2026-U1
https://saibius.com/redeem?key=SAIBIUS-2026-C1
Si tuvieron un error con el código anterior, por favor intenten de nuevo con el nuevo código.
Siento que el punto de venta se percibe algo débil, así que te comparto este feedback. No queda bien justificada la necesidad de una UI web. Si la interfaz principal es la terminal, ¿no se podría ejecutar directamente la aplicación que abre el archivo recibido con un comando como
firefox <html_file>ocat <text_file>? Creo que también se podría reducir más el tamaño del binario. Si quieres hacerlo más amigable para GUI, también podría estar bien agregar un shortcut al menú de clic derecho de Explorer o Finder en cada plataforma. Si incluso se quitara la UI web, creo que la comparación sería con https://github.com/schollz/croc, que es una herramienta que uso como principal. No requiere un runtime aparte, la transferencia local es bastante rápida, también soporta transferencias remotas vía relay p2p con cifrado e2e, y además permite reanudar transferencias (resume).¡Gracias por sus buenos comentarios!
Creo que sería bueno agregar la parte de los atajos de la GUI.
Primero, responderé a los puntos que mencionó.
Necesidad de la WebUI
Aunque la terminal es la interfaz principal, este programa fue diseñado para poder compartirse también con miembros del equipo como marketers y diseñadores que no están familiarizados con entornos de servidor o de terminal, por lo que queremos que la WebUI sea un diferenciador.
Parte relacionada con la ejecución de archivos
Este programa está enfocado básicamente en un "servidor temporal para compartir archivos", por lo que no ejecuta directamente la aplicación que abre ese archivo. La razón es que, entre las extensiones que usamos normalmente, hay casos en los que distintos programas comparten la misma extensión.
Diferencias con CROC
Si tuviera que mencionar la diferencia más grande con la herramienta que comentó, probablemente sería el soporte de Zero-Copy y la optimización dinámica del búfer (búfer variable según el archivo). Esta herramienta también aplicó
HttpRangede forma predeterminada para soportar IDM (o FDM).La función de atajos que comentó me parece una muy buena idea. Voy a estudiarla para poder reflejarla en una actualización futura.
¡Que tenga un buen día! :)
¿No deberían tratarse como recursos para compartir los parámetros que no tienen la bandera
--file?¡Gracias por sus buenos comentarios!
También estamos al tanto del tema relacionado con la bandera
--file;en las versiones iniciales era posible compartir archivos incluso sin esa bandera.
Sin embargo, durante el proceso de pruebas beta surgió la preocupación de que, "debido a que los archivos se comparten de inmediato, un usuario podría compartir por accidente una ruta incorrecta del portapapeles mediante copiar y pegar"; por eso se agregó un paso adicional de entrada y, por ahora, se cambió para requerir explícitamente la bandera
--file.Como usted menciona, también coincidimos en que, desde el punto de vista de la comodidad, podría ser mejor que funcione sin la bandera. Seguimos probando cómo equilibrar la seguridad y la facilidad de uso.
La función de omitir la bandera
--fileque nos comentó nos parece una muy buena idea.¡Gracias por la buena sugerencia! :)
¡Que tenga un buen día! :)
No sé si el usuario objetivo del servidor son desarrolladores o usuarios comunes. Si está dirigido a desarrolladores, la prevención de pegar rutas incorrectas resulta engorrosa; y si está dirigido a usuarios comunes, existe la incomodidad de tener que abrir la línea de comandos e ingresar la bandera
--file. Si no existe la bandera--file, se renuncia a la posibilidad de compartir de inmediato arrastrando una carpeta desde el explorador y soltándola sobre el ejecutable. Entonces, por comodidad, podrían considerar agregar una opción al menú del sistema, pero ¿cuántas veces al mes usarían ese menú contextual?Gracias por los comentarios adicionales.
Como mencionas, creo que tanto la usabilidad para los desarrolladores como la comodidad para los usuarios generales son aspectos que no se pueden descuidar.
Sin embargo, por ahora consideramos que la prioridad es mantener el flujo de trabajo estable de los usuarios existentes.
Las ideas que propusiste, como la "omisión de flags" o la "mejora de la interfaz", las revisaremos con cuidado para una futura actualización importante, procurando no afectar la compatibilidad hacia atrás.
Gracias por tu interés.
CROC es una herramienta excelente, como mencionaste, pero requiere que el dispositivo receptor también tenga CROC instalado y que pueda usar la línea de comandos; en cambio, nuestra herramienta ofrece una webUI junto con soporte para Wget/Curl, así que incluso los miembros del equipo que no son desarrolladores pudieron usarla fácilmente solo con el navegador.
¡Muchas gracias por la idea del atajo! La verdad es que hasta había olvidado que era posible implementar una función así.
¡Que tengas un buen día! :)