Ein 5-MB-Rust-Dateiserver, den ich zum Teilen von Dateien zwischen lokalen Netzwerken gebaut habe
(saibius.com)Beim Entwickeln kommt es bei mir öfter vor, dass ich Dateien vorübergehend teilen muss.
Zum Beispiel, wenn ich Dateien schnell lokal teilen möchte (etwa AI-Checkpoints oder Trainingsdaten). Da diese Dateien oft groß sind, ist die Übertragung über bestehende Cloud-Dienste langsam, und Python-Server „explodieren“ gelegentlich, was unpraktisch ist. Deshalb wollte ich einen lokalen Dateiserver, mit dem man Dateien vorübergehend per curl/wget teilen kann, und habe ihn gebaut.
Als wichtigste Merkmale gibt es im Großen und Ganzen vier Punkte.
Erstens: Cross-Platform. – Eigentlich habe ich das auch aus Bequemlichkeit für mich selbst gebaut, aber für mich, der zwischen Linux und Windows wechselt, ist derselbe Befehl etwas, auf das ich nicht verzichten wollte …
Zweitens: Web-UI – Standardmäßig ist ein kleiner Webserver im Apache-Stil integriert, sodass Nutzer Dateien aus dem freigegebenen Ordner herunterladen oder einige vom Browser unterstützte Dateitypen (html, txt usw.) direkt ansehen können.
Drittens: Keine separate Runtime-Installation nötig. – Anfangs habe ich auch einen Express-Server und Ähnliches in Betracht gezogen, aber ich nutze oft LXC und fand es lästig, zusätzlich eine Runtime wie Node zu installieren. Auch unter Windows war es umständlich, bei jedem VM-Start alles erneut einzurichten.
Viertens: Dateiserver unter 5 MB – Ich habe alles entfernt außer der „Dateiübertragung“, sodass die tatsächliche Dateigröße unter 5 MB liegt (der größte Build ist Linux x86 mit 4.12 MB, Stand Version 1.0.0).
Es ist tatsächlich ein Programm, das ich selbst benutze, und nach meiner eigenen Nutzung ist es praktisch, wenn man ISO-Dateien, große Bilder oder PDFs vorübergehend im internen Netz teilen möchte.
Beispiel für eine Ordnerfreigabe: ./saibius –file ./share
Website: https://saibius.com/
GitHub: https://github.com/saibius/docs
P.s Es wird für 4.900 Won verkauft, aber die ersten 10 Personen erhalten einen kostenlosen Key.
Wenn Sie den Link https://saibius.com/redeem?key=SAIBIUS-2026-R1 aufrufen, wird er automatisch ausgefüllt :)
20 Kommentare
Scheint so etwas wie copyparty zu sein.
Hallo
ich hoffe, Sie haben einen guten Tag.
Am Wochenende hatte ich etwas zu tun, daher habe ich es erst spät gesehen.
Der grundlegende Zweck wurde ähnlich wie Copyparty konzipiert.
Zum Zeitpunkt der Entwicklung wusste ich nicht, dass es ein solches Projekt bereits gibt, und habe erst durch die Kommentare davon erfahren.
Wenn ich an die Unterschiede denke:
In unserem Use Case gibt es öfter Situationen, in denen es schwierig ist, eine separate Runtime zu installieren,
sodass es auch auf Servern im internen Netzwerk genutzt wird. Deshalb ist ein Merkmal, dass auf dem Gerät, das die Dateien freigibt, keine zusätzliche Runtime (z. B. Python-Runtime, zusätzliche Pakete usw.) benötigt wird.
Auf den meisten Servern ist Python zwar enthalten, aber unsere Umgebung wird wie bei LXC nur mit einem Minimum an Paketen betrieben, daher dürfte dieser Punkt je nach Umgebung und Use Case unterschiedlich sein.
Saibius wird sich auch weiterhin weiterentwickeln.
Vielen Dank für Ihr Interesse.
Ich wünsche Ihnen einen schönen Tag :)
Planen Sie eventuell, die Android-Termux-Umgebung künftig ebenfalls zu unterstützen?
Wenn ich unter Android Dateien an eine andere Umgebung senden muss, nutze ich meist
croc, wenn das möglich ist; wenn der Zugriff über Webbrowser odercurl,wgeterfolgen muss, verwende ich hauptsächlich Copyparty. Für einfaches Teilen wirkt aber auch dieses hier ganz brauchbar.Hallo!
Verbringt ihr schöne Feiertage?
Dem mit Spannung erwarteten kleinen Update 1.0.0.11 wurde ein Termux-(Android)-Build hinzugefügt!
Das Update wurde am 12. Februar veröffentlicht, und da die Stabilisierungsarbeiten einige Zeit in Anspruch genommen haben, kann ich erst jetzt antworten.
Saibius wird sich auch weiterhin stetig weiterentwickeln.
Vielen Dank für euer Interesse.
Ich wünsche euch einen schönen Tag :)
Oh, danke für die Information!
Hallo!
Habt ihr eine schöne Nacht?
Im lang erwarteten Minor-Update 1.0.0.11 werden wir einen Termux-(Android)-Build ergänzen und veröffentlichen.
Es hat sich zwar etwas mehr verzögert als ursprünglich erwartet, aber wir haben bestätigt, dass es auf Grundlage der aktuellen Version im Play Store normal funktioniert.
Wir bereiten alles für eine sichere Veröffentlichung vor und wären dankbar, wenn ihr euch noch ein wenig gedulden würdet!
Saibius wird sich auch künftig weiterentwickeln.
Vielen Dank für euer Interesse.
Habt einen schönen Tag :)
Hallo
verbringen Sie gerade eine angenehme Nacht?
In der von Ihnen erwähnten Android-Termux-Umgebung wurden zwar noch keine offiziellen Tests durchgeführt, sie ist aber in den Plänen für die weitere Entwicklung und künftige Tests bereits enthalten.
Sobald die Tests abgeschlossen sind, werde ich Ihnen schnell antworten :b
Und danke, dass Sie mir gute Tools wie Copyparty und Croc empfohlen haben. Ich sollte mir solche Tools wohl auch genauer ansehen...
Saibius wird sich auch künftig weiterentwickeln.
Vielen Dank für Ihr Interesse.
Ich wünsche Ihnen einen schönen Tag :)
Für die interne gemeinsame Nutzung von Web-Dokumenten verwende ich den in Python integrierten Webserver.
Hallo
verbringen Sie einen schönen Nachmittag?
Ich denke, der Python-Webserver ist ebenfalls wirklich ein großartiges Tool!
Tatsächlich befanden auch wir uns in einer Situation, in der wir den eingebauten Python-Webserver genutzt haben. Da wir jedoch nicht nur Webdokumente, sondern auch AI-Trainingsdaten und Checkpoint-Dateien (
.safetensors,.ckptusw.) verarbeiten, kam es bei Dateien im Umfang von mehreren hundert GB bis zu mehreren TB gelegentlich zu Verbindungsabbrüchen oder Instabilitäten.Als Alternative betreiben wir zwar auch ein NAS, aber gerade bei großen Dateien ist es letztlich schneller, sie direkt von dem Gerät zu senden, auf dem sie liegen, statt den Umweg über Upload > Server > Download zu gehen. Deshalb haben wir dieses Programm entwickelt; am Ende ist wohl das am besten geeignete Tool immer das, das zur jeweiligen Umgebung passt.
Ich wünsche Ihnen einen schönen Tag :)
Für diesen Anwendungsfall ist das eine gute Wahl. Gibt es vielleicht eine Verschlüsselungsfunktion? Wäre es möglich, die Daten verschlüsselt zu speichern und beim Teilen zu entschlüsseln?
Hallo! Vielen Dank für die gute Frage.
In der aktuellen Version werden die von Ihnen erwähnte „Verschlüsselungsfunktion“ sowie „Speicher-/Verschlüsselungsfunktion“ derzeit nicht unterstützt.
Tatsächlich haben wir das in der frühen Entwicklungsphase geprüft, aber da es sich um ein Tool handelt, das auf die „temporäre Dateiübertragung im lokalen Netzwerk“ spezialisiert ist,
und weil in Umgebungen zum Teilen großer Datenmengen der Verschlüsselungs-Overhead die Übertragungsgeschwindigkeit beeinflusst,
haben wir uns leider entschieden, diese Funktionen auszuschließen.
In unserem Fall nutzen wir, wenn Verschlüsselung erforderlich ist, hauptsächlich die verschlüsselte Speicherfunktion des NAS.
Vielen Dank für Ihr Interesse an Savious.
Ich wünsche Ihnen einen schönen Tag :)
[Update] Hinweis zum Aufbrauchen der kostenlosen Keys
Vielen Dank für Ihr großes Interesse!
Stand 22. Januar 2026, 13:10 Uhr, sind alle kostenlosen Keys aufgebraucht.
[Aufgebrauchte Keys]
Anfängliche kostenlose Keys (R1), später verteilte U1, C1
Dank Ihrer Unterstützung wird
Savius sich auch in Zukunft weiterentwickeln.
Vielen Dank.
[Update] Vielen Dank für das große Interesse!
Die anfänglichen kostenlosen Keys waren schnell vergriffen, und einige von Ihnen hatten Probleme beim Einlösen.
Wir haben das Problem behoben und stellen zusätzlich 20 weitere zur Verfügung.
https://saibius.com/redeem?key=SAIBIUS-2026-U1
https://saibius.com/redeem?key=SAIBIUS-2026-C1
Falls bei Ihnen mit dem vorherigen Code ein Fehler aufgetreten ist, versuchen Sie es bitte erneut mit dem neuen Code!
Ich möchte Ihnen etwas Feedback geben, weil der Selling Point aus meiner Sicht etwas schwach wirkt. Die Notwendigkeit einer Web-UI ist nicht wirklich überzeugend dargelegt. Wenn das Terminal die primäre Oberfläche ist, könnte man dann nicht per Befehl direkt die passende Anwendung zum Öffnen der empfangenen Datei starten, etwa mit
firefox <html_file>odercat <text_file>? Ich denke, die Binärgröße ließe sich noch weiter reduzieren. Wenn man es GUI-freundlicher machen möchte, könnte es außerdem gut sein, im Rechtsklick-Menü des Explorers oder Finders auf den jeweiligen Plattformen eine Verknüpfung hinzuzufügen. Falls sich sogar die Web-UI ganz weglassen ließe, würde ein Vergleich mit https://github.com/schollz/croc naheliegen. Das ist ein Tool, das ich selbst hauptsächlich nutze: Es kommt ohne separate Runtime aus, ist für lokale Übertragungen ausreichend schnell, unterstützt per Relay-P2P auch Remote-Übertragungen mit E2E-Verschlüsselung und bietet außerdem die Wiederaufnahme von Übertragungen (resume).Vielen Dank für Ihr wertvolles Feedback!
Ich denke, es wäre gut, den Teil mit den GUI-Shortcuts zu ergänzen.
Zunächst möchte ich auf die von Ihnen genannten Punkte antworten.
Notwendigkeit der WebUI
Auch wenn das Terminal die primäre Oberfläche ist, wurde dieses Programm so entworfen, dass es auch mit Teammitgliedern wie Marketern oder Designern geteilt werden kann, die mit Server- oder Terminalumgebungen nicht vertraut sind. Daher möchten wir die WebUI als Unterscheidungsmerkmal mitnehmen.
Zum Ausführen von Dateien
Dieses Programm konzentriert sich grundsätzlich auf einen „temporären Dateifreigabeserver“ und startet daher nicht direkt die Anwendung, die die betreffende Datei öffnet. Die von uns standardmäßig verwendeten Dateiendungen werden teils von unterschiedlichen Programmen gemeinsam genutzt.
Unterschied zu CROC
Der größte Unterschied zu dem von Ihnen genannten Tool dürfte die Unterstützung von Zero-Copy sowie die Optimierung mit dynamischem Buffering (variable Buffer je nach Datei) sein. Dieses Tool hatte außerdem grundsätzlich
HttpRangeangewendet, um IDM (oder FDM) zu unterstützen.Die von Ihnen erwähnte Shortcut-Funktion scheint mir eine gute Idee zu sein. Ich werde mich damit beschäftigen, damit wir sie in einem künftigen Update berücksichtigen können.
Ich wünsche Ihnen einen schönen Tag! :)
Sollten Parameter ohne das Flag
--filenicht als freizugebende Ressource behandelt werden?Vielen Dank für das wertvolle Feedback!
Bezüglich des
--file-Flags ist uns das Thema ebenfalls bekannt.In frühen Versionen war das Teilen von Dateien auch ohne Flag möglich.
Im Beta-Test wurde jedoch die Sorge geäußert, dass Nutzer aufgrund der Eigenschaft, dass Dateien sofort freigegeben werden, unbeabsichtigt einen falschen Pfad aus der Zwischenablage per Copy & Paste teilen könnten. Deshalb wurde ein zusätzlicher Eingabeschritt eingeführt, sodass derzeit ausdrücklich das
--file-Flag erforderlich ist.Wie Sie sagen, kann es aus Sicht der Benutzerfreundlichkeit besser sein, wenn es auch ohne Flag funktioniert. Wir stimmen dem zu und testen weiterhin, wie sich das Gleichgewicht zwischen Sicherheit und Komfort am besten gestalten lässt.
Die von Ihnen erwähnte Möglichkeit, das
--file-Flag wegzulassen, scheint eine gute Idee zu sein.Vielen Dank für den guten Vorschlag :)
Ich wünsche Ihnen einen schönen Tag :)
Ich bin mir nicht sicher, ob sich der Server eher an Entwickler oder an allgemeine Nutzer richtet. Wenn Entwickler die Zielgruppe sind, ist die Verhinderung des Einfügens eines falschen Pfads eher umständlich, und wenn allgemeine Nutzer die Zielgruppe sind, ist es unpraktisch, erst ein Befehlsfenster zu öffnen und das Flag
--fileeingeben zu müssen. Wenn es kein Flag--filegibt, müsste man darauf verzichten, einen Ordner im Explorer auf die ausführbare Datei zu ziehen und sofort freizugeben. Dann könnte man aus Gründen der Bequemlichkeit überlegen, dem Systemmenü einen Eintrag hinzuzufügen – aber wie oft würde man dieses Shortcut-Menü im Monat tatsächlich benutzen?Vielen Dank für das zusätzliche Feedback.
Wie Sie gesagt haben, sind sowohl die Benutzerfreundlichkeit für Entwickler als auch der Komfort für allgemeine Nutzer Aspekte, die wir nicht außer Acht lassen können.
Derzeit halten wir es jedoch für vorrangig, den stabilen Workflow bestehender Nutzer beizubehalten.
Die von Ihnen vorgeschlagenen Ideen wie das „Weglassen von Flags“ oder „Verbesserungen an der Oberfläche“ werden wir zum Zeitpunkt eines künftigen größeren Updates sorgfältig prüfen, soweit dabei die Abwärtskompatibilität nicht beeinträchtigt wird.
Vielen Dank für Ihr Interesse.
CROC ist, wie Sie erwähnt haben, ein großartiges Tool, aber auf dem Empfängergerät muss ebenfalls CROC installiert sein und man muss die Kommandozeile nutzen können. Unser Tool bietet dagegen Unterstützung für Wget/Curl sowie eine Web-UI, sodass auch Teammitglieder ohne Entwicklerhintergrund es ganz einfach nur mit dem Browser nutzen konnten.
Vielen Dank auch für die Shortcut-Idee! Ich hatte ganz vergessen, dass sich so eine Funktion umsetzen lässt.
Ich wünsche Ihnen einen schönen Tag :)