-- Leo's gemini proxy
-- Connecting to nanako.mooo.com:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini; charset=utf-8
RemiGemini is an extremely small and lightweight library for interfacing with the Gemini Protocol using the Crystal programming language. It includes classes that aid in the implementation of clients and servers.
require "remigemini" RemiGemini::Client.get(ARGV[0], noVerify: true) do |resp| puts "Response Status: #{resp.status}" puts "Response message: #{resp.meta}" puts resp.body end
require "./src/remigemini" if ARGV.size != 2 abort("Usage: #{File.basename(PROGRAM_NAME)} ") end server = RemiGemini::Server.new do |request| if request.uri.path == "" || request.uri.path == "/" resp = RemiGemini::Client::Response.new("Hello, world!") resp.to_io(request.sock) else resp = RemiGemini::Client::Response.new(RemiGemini::StatusCode::NotFound, "Nothing yet :(") resp.to_io(request.sock) end end address = server.bind("localhost", ARGV[0], ARGV[1], port: 8069) puts "Listening on gemini://#{address}" server.listen
--------- Page served by Aya https://nanako.mooo.com/fossil/aya/ Aya is under the GNU Affero GPLv3 license
-- Response ended
-- Page fetched on Mon May 20 03:19:47 2024