Gemini — сетевой протокол прикладного уровня, предназначенный для передачи данных с помощью гипертекста. Совокупность всей информации, доступной по протоколу Gemini, называют Gemini Space. Главным принципом Gemini его разработчики называют простоту использования[1].
Ресурсы Gemini, типа «text/gemini», («gem-text») или другой контент, предоставляются клиентам по запрошенному URL-адресу.
Ответ протокола содержит только текст или бинарные данные. Он не поддерживает сжатие, разбиение сообщений и методы сетевого кодирования. Сервер разрывает соединение сразу после передачи последнего байта и не отправляет сообщение end of response. Gemini требует, чтобы все транзакции производились с использованием TLS 1.2 или выше.
Текст в gem-text-формате предлагает три уровня заголовков, одноуровневые списки, цитаты, преформатированный текст и ссылки[2].
Протокол работает по TCP/IP с портом 1965 и имеет одноименный идентификатор ресурса (URI). Его синтаксис прописан в RFC 3986. URL закодирован UTF-8 и имеет максимальную длину в 1024 байта.
Домашнюю страницу Gemini можно найти по адресу gemini://geminiprotocol.net. Для доступа к этому URL-адресу необходим браузер Gemini. Сообщество поддерживает множество клиентов для ПК и мобильных платформ. Раздел Gemini mailing list показывает всех новых участников.
В качестве альтернативы собственным клиентам, существуют Gemini шлюзы — прокси-серверы которые могут использоваться с обычными веб-браузерами, не поддерживающими протокол Gemini. Такими прокси-серверами являются mozz.us,[3] Vulpes Proxy,[4] и ondollo[5].
На декабрь 2020 года, Gemini space содержит около 500 сайтов[6].
Поисковая система Gemini нерегулярно собирает более 200 000 URI, публикуя некоторые исторические данные (см. График).[7]
Gemini представляет собой переосмысление протокола Gopher, которому около 30 лет. Возврат к истокам интернета для некоторых выглядит как шаг назад в технологическом плане. Хотя многие проблемы Gopher разработчикам Gemini удалось разрешить — например, они добавили редиректы, если контент по ссылке был перемещен, и поддержку MIME-типов.