Glib-oriented client for Gemini protocol https://crates.io/crates/ggemini
Find a file
2024-10-25 16:17:02 +03:00
src remove extra line 2024-10-25 15:46:23 +03:00
tests draft test 2024-10-25 16:13:57 +03:00
.gitignore init crate 2024-10-18 21:34:49 +03:00
Cargo.toml change version 2024-10-24 20:23:06 +03:00
LICENSE Initial commit 2024-10-18 21:24:15 +03:00
README.md fix anchors 2024-10-25 16:17:02 +03:00

ggemini

Glib-oriented client for Gemini protocol

Important

Project in development!

Install

cargo add ggemini

Usage

client

client::simple_socket_request_async

High-level API to make async socket request and auto-close connection on complete.

Return Response on success or Error enum on failure.

use glib::{Uri, UriFlags};

match Uri::parse("gemini://geminiprotocol.net/", UriFlags::NONE) {
    // Begin async request
    Ok(uri) => ggemini::client::simple_socket_request_async(uri, |response| match response {
        // Process response
        Ok(response) => {
            // Expect success status
            assert!(match response.header().status() {
                Some(ggemini::client::response::header::Status::Success) => true,
                _ => false,
            })
        }
        Err(_) => assert!(false),
    }),
    Err(_) => assert!(false),
}

client::Error

client::response

client::response::Response

client::response::header

client::response::header::meta

client::response::header::mime

client::response::header::status

client::response::header::language

client::response::header::charset

client::response::body

client::socket

client::socket::connection

client::socket::connection::input

client::socket::connection::input::buffer

client::socket::connection::output

Integrations

  • Yoda - Browser for Gemini Protocol

See also