diff --git a/data/media/gemini_protocol/alt-web-protocols-comparison.png b/data/media/gemini_protocol/alt-web-protocols-comparison.png new file mode 100644 index 0000000..e8b66c7 Binary files /dev/null and b/data/media/gemini_protocol/alt-web-protocols-comparison.png differ diff --git a/data/pages/gemini_protocol.txt b/data/pages/gemini_protocol.txt index aea6be6..e0c8d6d 100644 --- a/data/pages/gemini_protocol.txt +++ b/data/pages/gemini_protocol.txt @@ -199,8 +199,9 @@ _underline_ Спорным моментом является обязательное шифрование TLS поверх уже имеющегося слоя. Также сертификат TLS предусматривает наличие CN записи, что может стать проблемой при выборе сервера с поддержкой CN/SNI в формате IPv6.\\ -Разработчики серверов не ймут сути вопроса по части отсутствия домена и если есть задача работать с классической адресацией Yggdrasil, следует сразу обратить внимание на форк сервера [[https://github.com/YGGverse/titan-II|Titan-II]]. +Разработчики серверов не ймут сути вопроса по части отсутствия домена и если есть задача работать с классической адресацией Yggdrasil, следует сразу обратить внимание на форк сервера [[https://github.com/YGGverse/titan-II|Titan-II]] (реализация хостинга статики на его основе - реализована в проектах β-Doku и Pulsar). +В виду указанных особенностей, более целесообразным выбором для сети Yggdrasil может быть протокол [[:nex_protocol|Nex]]. ==== DNS ==== Пользователи [[:yggdrasil:dns:internal_dns|DNS с подключением через Yggdrasil]] и в частности - [[:yggdrasil:dns:alfis#скорость_работы|Alfis DNS]], использующего стандартно AdGuard, могут столкнуться с задержками при открытии казалось-бы легковесных страниц Gemtext. @@ -217,12 +218,46 @@ _underline_ * %%gemini://[301:23b4:991a:634d::db]%% - эксплорер блокчейна KevaCoin [[https://github.com/kvazar-network/geminiapp|KVAZAR]] * %%gemini://kvazar.ygg%% - алиас * %%gemini://kvazar.duckdns.org%% - алиас в Интернет + + * %%gemini://[301:23b4:991a:634d::feed]%% - агрегатор лент RSS на базе движка с открытым кодом [[https://github.com/YGGverse/Pulsar|Pulsar]] ===== Похожие протоколы ===== * Gopher * Guppy - %%gemini://guppy.000090000.xyz/guppy-spec.gmi%% * Spartan - * Nex + * [[:nex_protocol|Nex]] - %%nex://nightfall.city/nex/info/specification.txt/%% + * Scroll - %%gemini://scrollprotocol.us.to%% + * Text - https://textprotocol.org + +==== Сравнение ==== + + + gemini spartan scroll nex + ------ ------- ------ --- +naming scheme space sparta/greece scrolls & libraries cityscape & highways +transport TCP + TLS TCP TCP + TLS TCP +request structure full URL hostname & path full URL path +request encoding utf-8 us-ascii utf-8 utf-8 +status codes 18 4 18 0 +document type text/gemini text/gemini text/scroll text/plain +input prompt 1x status "=:" prompt line 1x status none + +data upload limited yes limited no +mimetypes yes yes yes no +virtual hosting yes yes yes no +same-site redirects yes yes yes no +cross-site redirects yes no yes no +proxy requests yes no yes no +"lang" response parameter yes no yes no +lang request parameter no no yes no +response metadata heuristic heuristic yes heuristic +abstract/metadata requests no no yes no + +link relationships heuristic heuristic yes heuristic +list nesting no no yes heuristic + + +Источник: %%gemini://scrollprotocol.us.to%% ===== Статьи внутри раздела ===== diff --git a/data/pages/nex_protocol.txt b/data/pages/nex_protocol.txt new file mode 100644 index 0000000..791cf3d --- /dev/null +++ b/data/pages/nex_protocol.txt @@ -0,0 +1,62 @@ +====== Nex (протокол) ====== + +Минималистичный сетевой протокол семейства [[https://ru.wikipedia.org/wiki/Gopher|Gopher]] / [[:gemini_protocol|Gemini]] для обмена преимущественно текстовыми файлами. + +От последнего отличается: + + * отсутствием внешних и внутренних редиректов + * отсутствием [[:gemini_protocol#коды_статусов|статус-кодов]] + * не требует обязательной сертификации TLS, следовательно - привязки к домену посредством CN/SNI, что выгодно при использовании классической адресации 0200::/7 в Yggdrasil, где передаваемый трафик уже зашифрован а DNS - зачастую не используется + +===== Спецификация ===== + +==== NEX ==== + +Сервер принимает подключения посредством TCP на порту 1900 и взависимости от наличия слеша в конце пути запроса, возвращает либо директорию либо текстовый или бинарный файл. + +**Пример запроса:** + + +telnet nightfall.city 1900 +nex + + +**Подробнее:** + +%%nex://nightfall.city/nex/info/specification.txt%% + + +==== NPS ==== + +Протокол отправки данных по типу Titan для Gemini, по-умолчанию используется порт 1915. + +Целостность отправляемого пакета обеспечивается наличием точки в конце сообщения, после чего пакет считается отправленным и соединение с сервером прекращается. + +**Спецификация:** + +%%nex://nightfall.city/nps/info/specification.txt%% + +===== Программное обеспечение ===== + +==== Сервер ==== + + * [[https://hg.sr.ht/~m15o/nexd|nexd]] - очень простой сервер на Go для публикации статики на 1900 порту, по-умолчанию открывает файлы с названием "[[https://hg.sr.ht/~m15o/nex-pfm/browse/handler.go?rev=tip#L93|index]]" (репозиторий mercurial) + * [[https://hg.sr.ht/~m15o/kinex|kinex]] - проксирующий сервер на Go для публикации статики на 8080 порту, также добавляет разметку HTML + +==== Клиенты ==== + + * [[https://github.com/skyjake/lagrange|Lagrange]] - браузер для различных smallnet протоколов, включая nex. + +==== Утилиты ==== + + * [[https://github.com/YGGverse/nex-php|nex-php]] - PHP 8 / Composer библиотека для разработки веб-приложений + +===== Внутрисетевые ресурсы ===== + + * %%nex://[301:23b4:991a:634d::1900]%% - блог проекта YGGverse в формате [[:gemini_protocol#gemtext|gemtext]] + +===== Ссылки ===== + + * [[https://nightfall.city]] (%%nex://nightfall.city%%) - домашняя страница - документация, полезные ссылки и ресурсы сообщества + * [[https://hg.sr.ht/~m15o/]] - тематические проекты с открытым кодом + * [[:gemini_protocol#сравнение|Сравнение протоколов gemini, spartan, scroll, nex]] \ No newline at end of file