LINUX.ORG.RU

Gemini-клиент Lagrange 1.2

 , , , ,


8

5

Вышла новая версия красивого и полнофункционального Gemini-клиента — Lagrange, написанного на языке C с использованием библиотеки SDL.

Gemini — это новый протокол прикладного уровня, по своему предназначению являющийся простой альтернативой HTTP и усовершенствованной альтернативой Gopher, то есть проектом «посередине» между ними в плане сложности. Он появился как реакция на недостатки последних, в особенности HTTP. В основу его дизайна легли идеи уважения приватности пользователя и сознательного отказа от расширяемости в пользу консервативного сохранения спецификации в минимальном, но удовлетворяющем пользовательские потребности виде (сейчас она заморожена). Проект использует уже знакомые многим стандарты, вроде URI, MIME и TLS. Проект не использует HTML, CSS и JavaScript — для разметки файлов предлагается похожий на Markdown формат Gemtext, а запуск кода и применение стилей на стороне клиента не предусмотрены. Для интерактивного взаимодействия с сервером существует CGI и потоковая отправка сообщений клиенту с помощью долгоживущего TCP-соединения (вследствие чего, например, возможна реализация чата). Сайты принудительно используют шифрование с помощью TLS без CA — вместо него используется механизм TOFU, а для аутентификации пользователей используются пользовательские сертификаты.

Сообщество разрастается интересными для пользователей проектами, вроде поисковой системы GUS, агрегатора новостей CAPCOM, каталогом Gemini-капсул (так называются местные сайты) Medusae, техническими демо возможностей протокола, вроде анонимной текстовой доски, агрегатора ссылок и чата. Доступны прокси как для просмотра Geminispace с помощью HTTP [1] [2] [3], так и для просмотра HTTP с помощью Gemini, и то же самое для Gopher.

Протокол достаточно прост, чтобы любой желающий мог создать свой клиент и сервер — чего нельзя сказать о текущем состоянии современного WWW с тысячами страниц спецификаций. По этой причине уже существует разнообразие проектов энтузиастов и активная дискуссия в почтовой рассылке проекта.

Lagrange является одним из таких проектов — небольшим Gemini-клиентом с поддержкой аппаратного ускорения с помощью SDL и плавного листания страниц, отображения картинок на странице, вкладок, тем оформления, закладок, истории, пользовательских сертификатов, оглавлений, новостных лент.

В этом выпуске добавлена поддержка новостных Atom-лент, загрузки отдельных файлов со страницы без открытия новой вкладки, пиктограмм для закладок, поиска по капсулам с помощью выбранной системы в настройках, опция для автоматической перезагрузки страницы по интервалу и изменения в дизайне.

В разработке порт Lagrange на мобильные платформы! А до тех пор пользователи могут попробовать Ariane на Android, например.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Протокол достаточно прост, чтобы любой желающий мог создать свой клиент и сервер — чего нельзя сказать о текущем состоянии современного WWW с тысячами страниц спецификаций.

Миллионы фронтендеров в недоумении.

Shaman007 ★★★★★ ()
Ответ на: комментарий от Shaman007

Ну дык они ж не сами пишут всю эту байду, а полагаются на написанный ранее миллионами мух код. А тут можно справиться реально в одиночку.

anonymous ()

Ещё раз повторюсь, пока не будет поддержи этого вашего gemini в крупных браузерах (по крайней мере в firefox) - оно не нужно. Держать отдельный клиент для этого просто не удобно.

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от Shaman007

Ну, проблема с практической монополизацией реализации веб-клиента сейчас вполне реальна: повсеместный безальтернативный Chrome (aka Blink) вместо разнообразия юзерагентов (которые Chrome даже пытается выпилить как явление).

Один из главных истеричек активно бомбит по этой теме и призывает обратить внимание на Gemini, с чем я его и поддерживаю, запостив эту новость. :3

commagray ★★★★★ ()

Наконец-то нормальная новость вместо какой-то (не)понятины. Даже тоже захотелось вкатиться.

d_a ★★★★★ ()
Ответ на: комментарий от eternal_sorrow

Поддержка Gemini в WWW-браузерах скорее кощунство и очень толстый троллинг создателя протокола.

Но вообще, реализации есть, хоть и для маргинальщины. https://git.sr.ht/~sotirisp/qute-gemini

Может, когда-нибудь запилят WebExtension.

commagray ★★★★★ ()
Последнее исправление: commagray (всего исправлений: 1)

Протокол достаточно прост, чтобы любой желающий мог создать свой клиент и сервер — чего нельзя сказать о текущем состоянии современного WWW с тысячами страниц спецификаций.

NIH-синдром.

Чтобы использовать HTTP на уровне этого Gemini, кода потребуется как раз примерно столько же, сколько для Gemini.

wandrien ()

Проект не использует HTML, CSS и JavaScript — для разметки файлов предлагается похожий на Markdown формат Gemtext, а запуск кода и применение стилей на стороне клиента не предусмотрены

Идеально, даже самому писать не пришлось, а там есть имиджборды типа Лора?

anonymous ()

написанного на языке C с использованием библиотеки SDL

Сабж не нужен, но за реализацию уважуха.

anonymous ()
Ответ на: комментарий от eternal_sorrow

Зачем нужны браузеры? Для этого протокола оверинжиниринг. С интернетом и без браузера можно взаимодействовать. Те же чаты, видеопроигрователи.

anonymous ()

а запуск кода на стороне клиента не предусмотрено

написанного на языке C

Бгг. Не предусмотрено, но возможно.

wandrien ()
Ответ на: комментарий от wandrien

Меня вполне можно ставить в один ряд с saahriktu по уровню заинтересованности маргинальщиной. Одно отличие: у меня эта маргинальнища новая-молодёжная, а у него откапывание старой-заплесневелой. :3

commagray ★★★★★ ()
Ответ на: комментарий от anonymous

Я знаю только об одном инди-разработчике, который готов был платить вознаграждение за обнаружение дыр в его коде на Си.

Остальные не были настолько уверены в себе.

wandrien ()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от wandrien

Можно и HTTP использовать в этих пределах, но на нем можно наваять и много сверх того. А фишка Gemini как раз в том, чтобы не тащить лишнего и сознательно ограничить возможности браузера и сайтов. И это очень хорошая идея.

Но вообще-то, хотя современный веб — слишком жирный, Gemini ударился в другую крайность, и слишком куцый. Даже беднее маркдауна по возможностям форматирования: курсива/жирного — нет, надстрочного/подстрочного шрифта — нет, таблиц — нет. Прямо, планета Шелезяка. Так что его идея мне очень нравится, а реализация так себе.

Kzer-Za ()
Последнее исправление: Kzer-Za (всего исправлений: 1)
Ответ на: комментарий от commagray

Ну да. Второй шаг: «что-то у нас все недостаточно молодежно… Давайте фич добавим: ну там, обработка кода на клиенте, push-механизмы, долгоживущие соединения…»

Ну как бы да, сейчас написать браузер с нуля - как написать операционную систему с нуля, потому что он уже операционная система в себе.

А UA выпиливать - я протестую! Как я буду тогда вычислять ники анонимов?

Shaman007 ★★★★★ ()
Ответ на: комментарий от wandrien

Чтобы использовать HTTP на уровне этого Gemini, кода потребуется как раз примерно столько же, сколько для Gemini.

Как заставить браузеры использовать шифрование по TOFU, а не извращаться с гуглозондами?

Технически, конечно, можно было сделать что-то вроде HTTP/0.95 на базе HTTP/0.9, но что выигрываем?

monk ★★★★★ ()
Ответ на: комментарий от Shaman007

Второй шаг

А в случае Gemini его (в лучшем случае, если не будет форка, что вполне вероятно из-за стремления человечества всё опошлить) нет: спецификация заморожена от изменений и принимаются только косметические правки.

Там в описании проекта прямо пишут, что он не является заменой WWW, но сосуществующей сетью для тех, кому надо и хочется.

1.6 Do you really think you can replace the web?

Not for a minute! Nor does anybody involved with Gemini want to destroy Gopherspace. Gemini is not intended to replace either Gopher or the web, but to co-exist peacefully alongside them as one more option which people can freely choose to use if it suits them. In the same way that some people currently serve the same content via gopher and the web, people will be able to «bihost» or «trihost» content on whichever combination of protocols they think offer the best match to their technical, philosophical and aesthetic requirements and those of their intended audience.

commagray ★★★★★ ()
Последнее исправление: commagray (всего исправлений: 1)
Ответ на: комментарий от dv76

Ынет как тот шар из навоза тащат на себе миллионы мух. Нет говна - нет мух. Не взлетит.

anonymous ()

Как же приятно смотреть на скриншот

Crocodoom ★★★★ ()
Ответ на: комментарий от Kzer-Za

А фишка Gemini как раз в том, чтобы не тащить лишнего и сознательно ограничить возможности браузера и сайтов.

Зачем?

И это очень хорошая идея.

Почему и чем?

Вот у меня тут простое клиент-серверное приложение, которое работает через HTTP простейшими запросами GET, PUT, DELETE.

Если бы не было HTTP, мне бы пришлось городить для этого обвязку с нуля, отдельный клиент (!) и отдельный сервер (!). Не дай бог, если на Си или крестах (!).

Даже беднее маркдауна по возможностям форматирования: курсива/жирного — нет, надстрочного/подстрочного шрифта — нет, таблиц нет.

Если он беднее маркдауна, это полное днище.

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

по возможностям форматирования

То есть протокол объединяет в одну кучу протокол обмена данными и формат разметки. И после этого HTTP — переусложнён??

Закопать сразу эту поделку идеологически родом откуда-то из 70-х.

wandrien ()
Ответ на: комментарий от monk

Как заставить браузеры использовать шифрование по TOFU, а не извращаться с гуглозондами? Технически, конечно, можно было сделать что-то вроде HTTP/0.95 на базе HTTP/0.9, но что выигрываем?

Взять links, lynx, hv3, dillo или netsurf и получить «простой браузер для простого веба» бесплатно без смс и регистрации. Шифрование легко прикручивается любое по вкусу, код элементарный.

wandrien ()

Гипертекстовых сайтиков и так пруд пруди, а вот шифрованные эхоконференции с удобным TUI (как у голого деда) никто ещё не запилил. По-моему, не хватает как раз негипертекстового фидонета с обязательным PGP.

token_polyak ()
Ответ на: комментарий от wandrien

Взять links, lynx, hv3, dillo или netsurf и получить «простой браузер для простого веба»

… и выдать его всем клиентам сайта. Заходишь на сайт, а тебе «скачайте links для просмотра».

Шифрование легко прикручивается любое по вкусу, код элементарный.

… скачайте патченный мною бинарник для просмотра. Или исходник и скомпилируйте. :-)

monk ★★★★★ ()
Ответ на: комментарий от Kzer-Za

А фишка Gemini как раз в том, чтобы не тащить лишнего и сознательно ограничить возможности браузера и сайтов

ЛОЛ ЧТО? Кто мне помешает замутить свой гемини с поддержкой <scirpt></script>? Расширений и ваяний поверх там нет только по причине неуловимости Джо автора и его поделия.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 2)
Ответ на: комментарий от monk

А клиента Gemini не нужно выдавать? Он сам материализуется на локалхосте? Что за бессвязный бред?

Внезапно, чтобы скачать клиент Gemini, нужен клиент HTTP или хотя бы FTP.

wandrien ()
Ответ на: комментарий от wandrien

А клиента Gemini не нужно выдавать? Он сам материализуется на локалхосте? Что за бессвязный бред?

А клиент Gemini уже есть для всех желающих простых сайтов и каждому из них не надо патчить links. Да и клиентов Gemini уже вагон. И наличие открытых прокси на Gemini в вебе позволяет клиенту вообще использовать браузер для входа.

monk ★★★★★ ()
Ответ на: комментарий от no-such-file

Кто мне помешает замутить свой гемини с поддержкой <script></script>?

И новый «простой ЯП» к нему впридачу. Какой-нибудь «RustScript», который, как водится, к Rust будет не иметь никакого отношений. ;)

Кому-то мало показалось, как мы на костылях ходили с этими на коленке написанными HTTP, HTML, CSS, JS и PHP, пока индустрия кое-как смогла их переварить в относительно пригодные для промышленного применения технологии и устранить все десткие баги спецификаций.

Хотят по второму кругу.

А кто мешает делать простые сайты без JS и CSS в обычном вебе? Вроде, никто не мешает…

wandrien ()
Ответ на: комментарий от monk

Если бы молодые авторы «клиентов Gemini» потратили хотя бы 20% своего энтузиазма над работу на netsurf, мы бы, возможно, уже жили при чуть другом, чуть более вменяемом вебе.

А так это просто очередная местячковая волна хайпа.

И наличие открытых прокси на Gemini в вебе позволяет клиенту вообще использовать браузер для входа.

Ржу.

wandrien ()
Ответ на: комментарий от wandrien

А кто мешает делать простые сайты без JS и CSS в обычном вебе? Вроде, никто не мешает…

Так и я про то. Делайте идейно верный html, как задумывалось. Никто не мешает же.

no-such-file ★★★★★ ()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от wandrien

А кто мешает делать простые сайты без JS и CSS в обычном вебе? Вроде, никто не мешает…

Без HTTPS уже мешает. Без JS и CSS не мешает, но сильно ограничивает возможности клиентов. Покажи мне браузер уровня Lagrange, который позволил бы разместить информацию так, как её удобно читать пользователю, а не сайтостроителю. Была идея с XML/XSLT, но как-то померла.

monk ★★★★★ ()
Ответ на: комментарий от wandrien

А кто мешает делать простые сайты без JS и CSS в обычном вебе? Вроде, никто не мешает…

The problem is that deciding upon a strictly limited subset of HTTP and HTML, slapping a label on it and calling it a day would do almost nothing to create a clearly demarcated space where people can go to consume only that kind of content in only that kind of way. It’s impossible to know in advance whether what’s on the other side of a https:// URL will be within the subset or outside it. It’s very tedious to verify that a website claiming to use only the subset actually does, as many of the features we want to avoid are invisible (but not harmless!) to the user. It’s difficult or even impossible to deactivate support for all the unwanted features in mainstream browsers, so if somebody breaks the rules you’ll pay the consequences. Writing a dumbed down web browser which gracefully ignores all the unwanted features is much harder than writing a Gemini client from scratch. Even if you did it, you’d have a very difficult time discovering the minuscule fraction of websites it could render.

commagray ★★★★★ ()
Ответ на: комментарий от monk

Покажи мне браузер уровня Lagrange, который позволил бы разместить информацию так, как её удобно читать пользователю, а не сайтостроителю

Абсолютно любой с кастомным css.

no-such-file ★★★★★ ()
Ответ на: комментарий от monk

В поисковике 200 тысяч страниц

Я тебе из одной википедии больше нагенерирую.

no-such-file ★★★★★ ()
Ответ на: комментарий от commagray

Ну взяли бы другое название для протокола, чтобы:

  • Обычные браузеры не могли перейти по таким ссылкам.
  • Их собственные браузеры игнорировали бы JS и всё, что им не нравится, но корректно парсили ограниченное подмножество HTML.

Проблема этой поделки именно в кривом, примитивном протоколе, будто мы в 70-е вернулись, и мой 16-битный компьютер всё равно ничего сложнее абзацев и списков отформатировать не сможет.

wandrien ()
Ответ на: комментарий от no-such-file

Абсолютно любой с кастомным css.

Как интересно. CSS такое умеет?

Чтобы было понятнее, вот страница из Лагранжа в двух других клиентах:

https://proxy.vulpes.one/gemini/gemini.circumlunar.space/docs/faq.gmi

https://portal.mozz.us/gemini/gemini.circumlunar.space/docs/faq.gmi

Покажешь User CSS, которым из какого-нибудь из них можно получить вид как на скриншоте?

monk ★★★★★ ()
Ответ на: комментарий от wandrien

Что как бы подразумевает, что CSS есть и умеет.

Так я и прошу CSS, чтобы в браузере оно стало таким же удобным как в Лагранже.

monk ★★★★★ ()
Ответ на: комментарий от Kzer-Za

Чёт не понял причём тут замена http и разметка? Это же не html чтобы сюда markdown приплетать

anonymous ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)