Hacker News Digest

Тег: #lua-jit

Постов: 1

Website is served from nine Neovim buffers on my old ThinkPad (vim.gabornyeki.com)

Кратко: плагин nvim-web-server на чистом Lua отдаёт HTTP-запросы прямо из открытых буферов Neovim, без внешних зависимостей, с нативной поддержкой Djot и быстрее Nginx.

Почему так быстро?

  • Однозадачность: только статика.
  • libuv + асинхронный I/O Neovim.
  • LuaJIT: NaN-тегинг, отсутствие boxing чисел, allocation sinking.
  • aiohttp тормозит из-за парсера на чистом Python и boxing в CPython.

Бенчмарк, RPS (среднее):

сервер 1 50 100 200 400
nvim-web-server 3981 15284 15124 14476 14446
Nginx 4451 11306 11576 10011 10461
aiohttp 6391 8477 8448 7696 7132

Развёртывание: живёт на старом ThinkPad, 9 буферов — весь сайт.

Безопасность: да, но мелочи мы игнорируем.

by todsacerdoti • 18 августа 2025 г. в 11:03 • 99 points

ОригиналHN

#neovim#lua#lua-jit#libuv#http#web-server#aiohttp#nginx#benchmarks#linode

Комментарии (17)

  • Пользователи в восторге от статьи: называют её «одной из любимейших» и приводят цитату «они были так заняты тем, могут ли, что не спросили себя, стоит ли».
  • Кто-то отмечает, что сайт резолвится на IP Linode, но не объясняется, зачем нужен промежуточный сервер.
  • Обсуждают безопасность: пример показывает, что «никогда не бывает так, чтобы код точно не запустили по сети».
  • Некоторые шутят, что Neovim теперь можно считать кроссплатформенным рантаймом «ужаса», но признают крутость эксперимента.
  • Предполагают, что высокая скорость может быть из-за хранения файлов в RAM, а не на диске, и что всё равно всё закешируется.