The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Релиз Static Web Server 2.1.0, http-сервера для отдачи статических файлов

29.10.2021 11:03

Выпущена новая версия компактного и высокоскоростного веб-сервера Static Web Server 2.1.0, предназначенного для отдачи файлов и статических веб-ресурсов. Код проекта написан на языке Rust и распространяется под лицензиями MIT и Apache. Готовые сборки подготовлены для Linux, Windows, macOS и FreeBSD. Имеется сборка в виде готового к использованию Docker-контейнера, насчитывающего более 90 тысяч загрузок. Также подготовлено подробное руководство с описанием процесса конфигурирования Static Web Server в разных окружениях.

Разработчики отмечают следующие отличия своего продукта от уже существующих аналогов:

  • Кросплатформенность. Сборки готовы для Linux, macOS, Windows и FreeBSD для архитектур x86, x86_64, ARM32 и ARM64.
  • Малый размер полностью готового к работе исполняемого файла - 4 МБ в распакованном виде (статическая сборка с Musl) и 2.28 МБ в виде Docker-контейнера.
  • Прозрачные и гибко конфигурируемые механизмы ведения лога и трассировки.
  • Настраиваемая многопоточность.
  • Низкое потребление памяти и ресурсов CPU.
  • Опциональное сжатие текстовых ресурсов методами GZip, Deflate и Brotli. Поддерживается заголовок Accept-Encoding.
  • Возможность обработки слушающего сокета вместо файлового дескриптора для использования в sandbox-окружениях и on-demand-приложениях (например, для интеграции с systemd).
  • Использование языка Rust для скорости, безопасности и многопоточности;
  • Поддержка HTTP/2, TLS, Basic HTTP Authentication, Range-запросов, Cache-Control, CORS и других типовых возможностей классического http-сервера.
  • Реализация HTTP/1 и HTTP/2 основана на HTTP-библиотеке hyper, а для асинхронной обработки запросов применяется библиотека Tokio.


  1. Главная ссылка к новости (https://github.com/joseluisq/s...)
  2. OpenNews: Для http-сервера Apache будет подготовлен TLS-модуль, написанный на языке Rust
  3. OpenNews: Релиз высокопроизводительного http-сервера Monkey 0.10
  4. OpenNews: Релиз OpenLiteSpeed 1.0, ознаменовавший переход http-сервера LiteSpeed к открытой модели разработки
  5. OpenNews: HTTPLabs, интерактивный http-сервер для тестирования и отладки
  6. OpenNews: Представлен новый высокопроизводительный HTTP-сервер H2O
Автор новости: QwertyReg
Лицензия: CC-BY
Короткая ссылка: https://opennet.ru/56062-sws
Ключевые слова: sws, http, server, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (79) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, QwertyReg (ok), 11:32, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    К сожалению, мне не удалось найти замеры и сравнение производительности SWS с другими веб-серверами, если кто-то окажется проворнее - милости прошу отредактировать новость.
     
     
  • 2.11, keydon (ok), 12:10, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +16 +/
    Продолжаешь троллить rustоманскими новостями?
    Извини, но у нас уже есть nginx.
     
     
  • 3.117, Тот_Самый_Анонимус (?), 12:05, 11/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Где вы увидели троллинг? Человек публикует новости, соотверствующие тематике ресурса, и интересные ему самому. Вы тоже можете так делать, а не мусорить комментариями.
     
     
  • 4.118, keydon (ok), 22:20, 11/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Где вы увидели троллинг? Человек публикует новости, соотверствующие тематике ресурса,
    > и интересные ему самому. Вы тоже можете так делать, а не
    > мусорить комментариями.

    Он местная тролячья легенда наравне с растоманей, nox и ipony, но последние 2 троллят меньше и потонье.

     
  • 2.16, Аноним (16), 12:37, 29/10/2021 Скрыто модератором
  • –2 +/
     
     
  • 3.59, Растоманя (?), 15:25, 29/10/2021 Скрыто модератором
  • –1 +/
     
  • 2.69, Массоны Рептилоиды (?), 16:27, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Я конечно, квертирега на дух не переношу, но плюсик первый раз в жизни поставил. Реально интересно на бенчмарки посмотреть
     

  • 1.2, Panda58dev (ok), 11:32, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Такой веб-сервер нужен, просто, для хранения файлов?
     
     
  • 2.7, пауль (?), 11:47, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    хех, да. как ни странно хранение и отдача статических файлов весьма и весьма частая задача.
     
     
  • 3.14, ryoken (ok), 12:34, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Под PXE-загрузку сгодится?
     
     
  • 4.19, Admino (ok), 12:46, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, там нужен TFTP. А вот если есть другой TFTP сервер, то дальше уже можно образы и пакеты раздавать через SWS.

    Но зачем ©

     
     
  • 5.60, Растоманя (?), 15:28, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы сделали ошибку в слове SJW
     
  • 5.65, ryoken (ok), 15:38, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Нет, там нужен TFTP. А вот если есть другой TFTP сервер, то
    > дальше уже можно образы и пакеты раздавать через SWS.

    iPXE довольно давно умеет по куче протоколов файло таскать, TFTP не  верх эффективности.

     
     
  • 6.67, Admino (ok), 16:16, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Под PXE-загрузку сгодится?
    > iPXE довольно давно умеет

    У тебя шизофрения или ты просто не помнишь, о чём сам же писал три часа назад?

     
  • 6.94, Аноним (-), 20:12, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    что работает быстрее tftp?
     
     
  • 7.107, териванов (?), 17:42, 30/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Практически что угодно работает быстрее tftp.

    tftp используют не за скорость или надёжность, а за примитивность позволяющую влепить его даже на анонима.

     
  • 3.73, лютый жабби__ (?), 17:45, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >как ни странно хранение и отдача статических файлов весьма и весьма частая задача.

    и как ни странно (если не ты не клаудфларь какая-то) задачу легко решает тот же самый веб-сервер, что отдаёт динамику (ну мы не про апач, конечно, а что-нить современно жабовое асинхронное )

    итого - SWS вполне может быть востребован где-то там, у хайлоадеров. впоппеннетчикам оно не надо

     
  • 2.24, Viktor (??), 13:16, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Репозиторий любого дистрибутива линукса - это https, обрабатывающий астрономическое количество запросов только статических файлов. Ну и полно других подобных задач. Если этот сервер будет заметно обгонять nginx, то применение ему найдётся.
     
     
  • 3.40, Аноним (16), 14:42, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не найдется, не обгонит. Для экстремальных нагрузок есть rwasa, но отсутствие поддержки решает всё равно в пользу nginx и его тонкой настройки.
     
  • 3.46, n00by (ok), 14:54, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Репозиторий любого дистрибутива линукса - это https, обрабатывающий астрономическое количество
    > запросов только статических файлов.

    Вот откуда берутся эти авторитетные мнения про "любой дистрибутив"?

    rsync://mirrors.kernel.org/mirrors/

     
  • 3.61, Растоманя (?), 15:31, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –5 +/
    И нжинкс на Rust перепишут, это вопрос времени!
     
  • 3.68, Admino (ok), 16:17, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Репозиторий любого дистрибутива линукса - это https,

    Кстати, большинство зеркал отдают http, а не https.

     
     
  • 4.114, пауль (?), 13:00, 03/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Кстати, большинство зеркал отдают http, а не https.

    дык дддааа, зачем шифровать то, чему в принципе шифрация в канале передачи нафих не нужна.  
    телега вон тоже работает по http :)

     
     
  • 5.116, john_erohin (?), 09:06, 10/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    пакеты подписаны, подпись проверяется после скачивания.
    впрочем кому я это пишу. "шифрация" => "ламо".

     

  • 1.6, Минона (ok), 11:45, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    это как nginx, только на rust.
     
     
  • 2.41, Аноним (16), 14:42, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Он совсем никак nginx он как http.server в питоне.
     
  • 2.96, OpenBotNET (ok), 20:21, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    это как 10% nginx, только на rust.
     

  • 1.12, Аноним (12), 12:21, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > http-сервера для отдачи статических файлов

    Только таким и должен быть веб.

     
     
  • 2.13, Аноним (13), 12:29, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А как по-твоему обрабатывать формы и post-запросы?
     
     
  • 3.25, Viktor (??), 13:19, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А их далеко не всегда надо обрабатывать. Более того, не всегда надо обрабатывать даже GET-запросы с параметрами.
     
     
  • 4.27, Аноним (27), 13:24, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Слово "только" в начале ветки видишь?
     
  • 2.33, Аноним (33), 13:50, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Будь последовательным — не пиши комментарии.
     

  • 1.15, Аноним (15), 12:35, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    теперь такое только на го надо написать, для полноты картины
     
     
  • 2.17, Аноним (13), 12:40, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В Go оно уже из коробки
     
     
  • 3.23, НяшМяш (ok), 13:07, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    В Go стандартная http библиотека для этого медленная - умельцы даже fasthttp написали.
     
     
  • 4.30, Аноним (16), 13:40, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Если у тебя такие нагрузки что прям нужна скорость, то умельцы еще Caddy написали.
     
     
  • 5.43, Аноним (43), 14:43, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    кадди, кстати, сравнительно медленный. лень гуглить бенчмарки, но по памяти там на уровне опача и в разы медленней  нжиникса.
     
  • 4.63, Растоманя (?), 15:34, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Go и Rust это слишком разный уровень, зачем их сравнивать
     

  • 1.18, Аноним (16), 12:40, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +14 +/
    Обновился веб сервер для отдачи статических файлов. python3 -m http.server 8000

    Спешите радоваться.

     
     
  • 2.64, Растоманя (?), 15:35, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А к чему, простите, здесь Питон?
     
     
  • 3.85, Аноним (85), 19:16, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    К вебсерверу.
     
     
  • 4.88, Растоманя (ok), 19:25, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > К вебсерверу.

    Сервера на питоне это отвратительно. Будущее за безопасным языком системного программирования Rust - здесь я с вами солидарен.

     
  • 2.95, Аноним (-), 20:15, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    веб сервер на питоне это самое медленное что может быть в мире вебсерверов
     
     
  • 3.99, Аноним (-), 21:04, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > веб сервер на питоне это самое медленное что может быть в мире вебсерверов

    Вообще-то, это лет 12 как одно из самых быстрых и кросплатформенных решений для расшаривания содержимого каталога в локалке.

     
     
  • 4.111, Аноним (111), 09:54, 01/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Он быстрее, чем php -S localhost:8080?
     

  • 1.20, leap42 (ok), 12:54, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мало того что оно оно супермаргинальное по распространенности и суперубогое по функционалу, так ещё и зависимостей куча. Зачем о таком новости вообще писать?
     
  • 1.22, Baal8217oball (?), 13:06, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Это для тех, кому не хватает Varnish?
     
  • 1.34, Аноним (34), 14:22, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Web сервер здорового человека
     
     
  • 2.48, Славик (?), 15:01, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Вэб сервер ржавого человека.
     
  • 2.51, Аноним (51), 15:10, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Web сервер получеловека
     

  • 1.35, FractaL (ok), 14:26, 29/10/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –2 +/
     
     
  • 2.44, Аноним (43), 14:45, 29/10/2021 Скрыто модератором
  • +/
     
  • 2.47, YetAnotherOnanym (ok), 14:57, 29/10/2021 Скрыто модератором
  • +1 +/
     

     ....ответы скрыты модератором (2)

  • 1.38, Rev (?), 14:29, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Код проекта написан на языке Rust

    Вот это правильно!

     
  • 1.39, Аноним (43), 14:34, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    QwertyReg, давай уже что-то посерьезней запости, а не эти шитхабоские васяноподелки со 100 звездочками. есть же на расте пяток более-менее приличных проектов типа firecracker, deno или vaultwarden.
     
     
  • 2.45, QwertyReg (ok), 14:54, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Как только релизнутся, так сразу и запощу.
     

  • 1.42, n00by (ok), 14:43, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    > Windows
    > Малый размер полностью готового к работе исполняемого файла - 4 МБ

    Там это делается HttpReceiveHttpRequest() + HttpSendHttpResponse(), которые используют готовый драйвер http.sys. Можно уложиться в порядка 20 КБ.

     
  • 1.50, Урри (ok), 15:08, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Больше новостей о хелловорлдах всяких и разных!

    QwertyReg уже задолбал.
    Я с такими новостями от телеграмбота отпишусь, пожалуй. Буду раз в неделю заходить простыню глянуть.

     
     
  • 2.56, Аноним (56), 15:20, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Держи нас в курсе, твоё мнение очень важно(нет)

    Если тебе не интересны подобные новости - не читай их. Мне к примеру тоже не интересны новости о sysvinit, xorg и прочем устаревшем дерьме. Но вместо того, чтобы заходить в подобные новости и дристать там в комментариях, Я просто их не открываю. Попробуй и ты так

     
     
  • 3.112, Урри (ok), 12:05, 01/11/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > Я просто их не открываю. Попробуй и ты так

    Я об этом и написал.
    Вот если бы вы читали то, на что отвечаете...

    Ключевая фраза, на которую обратить внимание: "телеграм бот".

     
  • 2.66, Анонн (?), 16:03, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Не надо отписываться!
    Это будет просто огромнейшая, невосполнимейшая потеря для вся опеннета.
     
  • 2.75, n00by (ok), 18:04, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Мне QwertyReg тоже нравится меньше, чем мистер Баггерз, но ПО на Rust существенно лучше чем ОС Rosa Tresh, которая написана на "диалекте баш" (ц) и при этом небезопасная.
     
     
  • 3.79, Урри (ok), 19:05, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    аксиома-эскобара.jpg
     

  • 1.70, Аноним (70), 16:28, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Веб сервер на асме сколько там байт? 4 млн не очень компактно, блоатварь откровенная. Кроме того это мюсли, использовать мюсли для публичных сервисов это суицид.
     
     
  • 2.74, n00by (ok), 17:55, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    372 Кб https://2ton.com.au/rwasa/
    Правда, список возможностей побогаче.
     

  • 1.76, Michael Shigorin (ok), 18:12, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Малый размер полностью готового к работе исполняемого файла -
    > 4 МБ в распакованном виде

    Успел было офигеть, но...

    > Использование языка Rust

    ...это многое объяснило про данное поколение "маломерных" разработчиков.

    Так-то тот же boa занимал килобайт шестьдесят что в исходном, что в бинарном виде.  Ну да, HTTP/2 не умел, но был как раз асинхронным, помнится.

    Впрочем, для Qwerty и такая статья -- уже значительный шаг вперёд от обычных кокомментариев, поздравляю.

     
     
  • 2.87, QwertyReg (ok), 19:22, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > Ну да, HTTP/2 не умел

    А ещё не умел в аутентификацию, SSL/TLS, кроссплатформенность и умел только в CGI.

     
  • 2.100, Ordu (ok), 21:44, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Так-то тот же boa занимал килобайт шестьдесят что в исходном

    Сравнил тёплое с мягким. Во-первых, 4Mb -- это static executable. Твой boa, если его собрать в static executable с musl на сколько потянет? Во-вторых, как там у boa с функциональностью? Он TLS или сжатие может? Ну, хотя бы, динамической линковкой?

    > Впрочем, для Qwerty и такая статья -- уже значительный шаг вперёд от обычных кокомментариев, поздравляю.

    Вот бы ещё ты взял с него пример, и сделал хотя бы минимальный шаг вперёд.

     

  • 1.78, Анонн (?), 18:50, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще забавляют местные комментаторы, которые сравнивают  ̶т̶е̶п̶л̶о̶е̶ ̶с̶ ̶м̶я̶г̶к̶и̶м̶ размеры других приложений с сабжем.
    У одного асм гвоздями прибит к x86_64, у другого нет HTTP/2, у третьего windows only, а где-то вообще динамически слинкован.
    Господа, давайте примеры статической кроссплатформы как для разных платформ, так и для разных архитектур.
     
     
  • 2.80, Урри (ok), 19:09, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    На 75 (семидясяти пяти) языках. Почти половина - кроссплатформенная.
    http://rosettacode.org/wiki/Hello_world/Web_server
     
     
  • 3.97, Аноним (-), 20:57, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > На 75 (семидясяти пяти) языках. Почти половина - кроссплатформенная.
    > ссылка на хелловроты, не поддерживающие даже HTTP/1.0, не говоря о auth/tls/сжатии/encoding

    Это тебя опять от упоминания раста припекло или ты просто не очень умный?

     
  • 2.81, Растоманя (ok), 19:11, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Rust победно шагает по планете, проигравшим это не нравится вот и злобствуют в комментариях
     

  • 1.83, Растоманя (ok), 19:13, 29/10/2021 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –1 +/
     
  • 1.91, Аноним (91), 19:58, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Код проекта написан на языке Rust

    Я так и знал. На чём либо ином писать такой примитивный веб-сервер смысла не имеет.

     
  • 1.92, Аноним (92), 19:59, 29/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >Малый размер
    >4 МБ
    >для веб-сервера

    Они там здоровы вообще?

     
     
  • 2.98, Аноним (-), 21:01, 29/10/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >> статическая сборка
    >> GZip, Deflate и Brotli. Поддерживается заголовок Accept-Encoding.
    >> Поддержка HTTP/2, TLS,
    > Они там здоровы вообще?

    Очередной питонист совсем не палится?

     

  • 1.106, Аноним (106), 17:02, 30/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Автор новости: QwertyReg

    Ржавый агент опять пиарит поделку корпораций.

     
  • 1.110, Kuromi (ok), 23:07, 31/10/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Поддержка HTTP/2, TLS, Basic HTTP Authentication"

    Очень "актуальна" Basic Auth, особенно на фоне того что в ФФ наконец реализовали SHA256 Auth Digest. Если уж реалиьзовывать HTTP Auth, то не Basic

     
  • 1.113, Kuromi (ok), 23:35, 01/11/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кстати сервер уже даже используется. Например швейцарский Foundation for Research on Information Technologies in Society судя по багрепортам.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру