💾 Archived View for nanako.mooo.com › programming › remigemini.gmi captured on 2023-11-04 at 11:39:49. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
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