Servidor de arquivos em Rust de 5 MB criado para compartilhar arquivos entre redes locais
(saibius.com)Enquanto desenvolvo, percebo que com certa frequência preciso compartilhar arquivos temporariamente.
Por exemplo, compartilhar arquivos rapidamente na rede local (como checkpoints de IA ou dados de treinamento). Como esses arquivos costumam ser grandes, a transferência por serviços de nuvem existentes é lenta, e servidores em Python às vezes “explodem” (?), o que é inconveniente. Então acabei criando um servidor de arquivos local que permite compartilhamento temporário via Curl/Wget.
De forma geral, ele tem quatro características principais.
Primeiro. Multiplataforma. – Na verdade, isso também foi algo que fiz por conveniência própria, mas para mim, que transito entre Linux e Windows, era impossível abrir mão do desejo de usar o mesmo comando…
Segundo. UI web – Há um pequeno servidor web estilo Apache embutido por padrão, e eu o fiz para que o usuário possa baixar arquivos da pasta compartilhada e também visualizar diretamente no navegador alguns tipos de arquivo compatíveis (como html, txt etc.).
Terceiro. Não requer instalação de runtime separado. – No começo também considerei algo como um servidor Express, mas como frequentemente uso LXC e similares, instalar separadamente um runtime como Node era incômodo. No Windows também havia a parte chata de ter que configurar tudo de novo sempre que eu ligava uma VM.
Quarto. Servidor de arquivos com menos de 5 MB – Removi tudo, exceto “transferência de arquivos”, e deixei o binário real com menos de 5 MB (o maior é o Linux x86 com 4.12 MB, build baseada na versão 1.0.0).
É um programa que eu realmente uso no dia a dia, e pelo que vi ao criá-lo e utilizá-lo, ele é prático para compartilhar temporariamente, na rede interna, arquivos ISO, imagens grandes ou PDFs.
Exemplo de compartilhamento de pasta: ./saibius –file ./share
Site: https://saibius.com/
GitHub: https://github.com/saibius/docs
P.s Estou vendendo por 4.900 won, mas ofereço chaves gratuitas para as 10 primeiras pessoas.
Se você acessar o link https://saibius.com/redeem?key=SAIBIUS-2026-R1, ele será preenchido automaticamente :)
20 comentários
Parece ser algo como o copyparty.
Olá
Espero que você esteja tendo um bom dia.
Tive alguns compromissos no fim de semana, então demorei para conferir..
O objetivo básico foi projetá-lo de forma semelhante ao Copyparty.
Na época do desenvolvimento, eu não sabia que esse tipo de projeto já existia, e acabei descobrindo pelos comentários.
A diferença que eu vejo é que,
em nosso caso de uso, às vezes ele também é usado em servidores de rede interna onde é difícil instalar um runtime separado,
então uma característica é que ele foi feito para que o dispositivo que vai compartilhar não precise usar um runtime adicional (por exemplo, runtime de Python, pacotes extras etc.).
A maioria dos servidores inclui Python, mas no nosso ambiente operamos com o mínimo de pacotes possível, como em LXC, então acho que isso pode variar conforme o ambiente/caso de uso.
Continuaremos evoluindo o Saibius.
Obrigado pelo interesse.
Tenha um ótimo dia :)
Por acaso vocês têm planos de oferecer suporte ao ambiente Termux no Android no futuro?
Quando preciso enviar arquivos do Android para outro ambiente, se for possível usar o croc eu uso o croc; se tiver que acessar por navegador,
curlouwget, costumo usar mais o Copyparty, mas para compartilhamentos simples isso aqui também parece uma boa opção.Olá!
Espero que estejam aproveitando bem o feriado!
A tão aguardada atualização menor 1.0.0.11 agora inclui uma build para Termux (Android)!
A atualização foi lançada em 12 de fevereiro, e o trabalho de estabilização levou algum tempo, então só agora estou conseguindo responder.
A Saibius continuará evoluindo daqui para frente.
Obrigado pelo interesse.
Tenham um ótimo dia :)
Oh, obrigado pela informação!
Olá!
Espero que você esteja tendo uma boa noite.
Planejamos lançar a tão aguardada atualização menor 1.0.0.11 com a adição de uma build para Termux (Android).
Houve um pequeno atraso em relação ao previsto inicialmente, mas confirmamos que ela está funcionando normalmente com base na versão mais recente da Play Store.
Estamos nos preparando para uma distribuição segura, então agradecemos se puder esperar só mais um pouco!
A Saibius continuará evoluindo no futuro.
Obrigado pelo interesse.
Tenha um ótimo dia :)
Olá
Espero que você esteja tendo uma boa noite.
No ambiente Android com Termux que você mencionou, ainda não realizamos testes oficiais, mas isso está incluído nos planos para desenvolvimento e testes adicionais no futuro.
Assim que os testes forem concluídos, responderei rapidamente com uma atualização :b
E obrigado por recomendar ótimas ferramentas como Copyparty e Croc; vou pesquisar essas ferramentas com mais detalhes também...
Continuaremos evoluindo o Saibius no futuro.
Obrigado pelo interesse.
Tenha um ótimo dia :)
Para compartilhar documentos web internamente na empresa, eu uso o servidor web embutido do Python.
Olá
Espero que você esteja tendo uma boa tarde.
Acho que o servidor web em Python também é uma ferramenta realmente muito boa!
Na verdade, nós também estávamos usando o servidor web embutido do Python, mas como do nosso lado lidamos não só com documentos web, mas também com dados de treinamento de IA e arquivos de checkpoint (
.safetensors,.ckptetc.), em arquivos na faixa de centenas de GB a vários TB às vezes a conexão caía ou ficava instável.Como alternativa para isso, também operamos um NAS, mas no caso de arquivos grandes, no fim das contas é mais rápido enviar diretamente do dispositivo onde o arquivo está do que fazer upload > servidor > download, então foi por isso que criamos o programa; no fim, acho que a melhor ferramenta é mesmo a que se encaixa no ambiente.
Tenha um ótimo dia :)
Para esse uso, parece uma boa escolha. Por acaso há função de criptografia? Seria possível criptografar no armazenamento e descriptografar ao compartilhar?
Olá! Obrigado pela ótima pergunta.
Na versão atual, os recursos de "criptografia" e de "armazenamento / criptografia" que você mencionou não são suportados.
Na verdade, nós os avaliamos no início do desenvolvimento, mas como é uma ferramenta especializada em "transferência temporária de arquivos em rede local interna" e, em ambientes de compartilhamento de grandes volumes de dados, a sobrecarga da criptografia afeta a velocidade de transferência,
infelizmente acabamos optando por excluí-los.
No nosso caso, quando precisamos de criptografia, usamos principalmente o recurso de armazenamento criptografado do NAS.
Obrigado pelo interesse no Savious.
Tenha um ótimo dia :)
[Atualização] Aviso de esgotamento das chaves gratuitas
Muito obrigado pelo grande interesse!
Até 22 de janeiro de 2026 às 13:10, todas as chaves gratuitas foram esgotadas.
[Chaves esgotadas]
Chave gratuita inicial (R1), U1 e C1 distribuídas posteriormente
Com o apoio de vocês, a Seivius continuará evoluindo ainda mais no futuro.
Obrigado.
[Atualização] Muito obrigado pelo grande interesse!
As chaves gratuitas iniciais se esgotaram rapidamente, e algumas pessoas tiveram erros no resgate.
Corrigimos o problema e disponibilizamos mais 20.
https://saibius.com/redeem?key=SAIBIUS-2026-U1
https://saibius.com/redeem?key=SAIBIUS-2026-C1
Se você encontrou um erro com o código anterior, tente novamente com o novo código!
A proposta de valor parece um pouco fraca, então deixo este feedback. A necessidade de uma interface web não está muito bem justificada. Se o terminal é a interface principal, não seria possível executar diretamente o aplicativo que abre o arquivo recebido por comando, como
firefox <html_file>oucat <text_file>? Acho que também daria para reduzir mais o tamanho do binário. Se a ideia for torná-lo mais amigável para GUI, talvez também fosse bom adicionar atalhos ao menu de clique direito do Explorer ou do Finder em cada plataforma. Se até a interface web fosse removida, acho que inevitavelmente seria comparado com o https://github.com/schollz/croc. É uma ferramenta que uso como principal: sem runtime separado, a transferência local já é suficientemente rápida, e para transferência remota via relay p2p também oferece suporte a criptografia e2e e retomada de transferência (resume).Muito obrigado pelo ótimo feedback!
Acho que seria bom adicionar a parte dos atalhos da GUI.
Primeiro, vou responder aos pontos que você mencionou.
Necessidade da WebUI
Embora o terminal seja a interface principal, este programa foi projetado para poder ser compartilhado também com membros da equipe, como profissionais de marketing e designers, que não estão acostumados com ambientes de servidor ou de terminal. Por isso, pretendemos usar a WebUI como um diferencial.
Parte relacionada à execução de arquivos
Este programa é focado principalmente em um "servidor temporário de compartilhamento de arquivos", então ele não executa diretamente o aplicativo que abre aquele arquivo. Isso porque, entre as extensões que usamos por padrão, há casos em que programas diferentes compartilham a mesma extensão.
Diferença em relação ao CROC
Acho que a maior diferença em relação à ferramenta que você mencionou é o suporte a Zero-Copy e a otimização dinâmica de buffer (buffer variável conforme o arquivo). Esta ferramenta também aplicou
HttpRangebasicamente para oferecer suporte a IDM (ou FDM).A função de atalho que você mencionou me parece uma ótima ideia. Vou estudar isso para tentar refletir em uma atualização futura.
Tenha um ótimo dia! :)
Os parâmetros sem a flag
--filenão poderiam ser tratados como recursos a serem compartilhados?Agradecemos pelo ótimo feedback!
Em relação à flag
--file, nós também estamos cientes disso,nas versões iniciais era possível compartilhar arquivos mesmo sem a flag.
No entanto, durante o processo de testes beta, surgiu a preocupação de que, "como os arquivos são compartilhados imediatamente, o usuário pode acabar compartilhando por engano um caminho incorreto da área de transferência ao copiar e colar sem querer". Por isso, adicionamos uma etapa extra de confirmação e,
por enquanto, alteramos o comportamento para exigir explicitamente a flag
--file.Como você mencionou, também concordamos que, do ponto de vista da conveniência, pode ser melhor que funcione mesmo sem a flag. Ainda estamos testando como equilibrar segurança e praticidade.
A função de omitir a flag
--fileque você sugeriu parece ser uma ótima ideia.Obrigado pela boa sugestão :)
Tenha um ótimo dia :)
Não sei se o público-alvo do servidor são desenvolvedores ou usuários comuns. Se o alvo forem desenvolvedores, impedir colar caminhos errados acaba sendo um incômodo; se forem usuários comuns, há a inconveniência de ter que abrir o prompt de comando e digitar a flag
--file. Se não houver a flag--file, você abre mão da possibilidade de compartilhar imediatamente arrastando uma pasta do Explorador para o executável. Aí, por conveniência, talvez se pense em adicionar uma opção ao menu do sistema, mas quantas vezes por mês esse menu de atalho seria usado?Agradeço o feedback adicional.
Como você mencionou, acredito que tanto a usabilidade para desenvolvedores quanto a conveniência para usuários em geral são aspectos que não podemos deixar de lado.
No entanto, no momento, entendemos que a prioridade é manter o fluxo de trabalho estável dos usuários existentes.
As ideias que você sugeriu, como a "omissão de flags" ou a "melhoria da interface", serão analisadas com cuidado em uma grande atualização futura, desde que isso não prejudique a compatibilidade com versões anteriores.
Obrigado pelo interesse.
O CROC que você mencionou é uma ferramenta excelente, mas exige que o dispositivo do destinatário também tenha o CROC instalado e que a pessoa saiba usar a linha de comando. Já a nossa ferramenta oferece suporte a Wget/Curl e uma webUI, então até membros não desenvolvedores da equipe conseguiram usar facilmente só pelo navegador.
Muito obrigado pela ideia do atalho! Eu até tinha me esquecido de que esse tipo de recurso podia ser implementado.
Tenha um ótimo dia :)