Gopher protocol library for Golang

This is a standards compliant Gopher library for the Go programming language
implementing the RFC 1436 specification. The library includes both client and
server handling and examples of each.

Installation

$ go get git.mills.io/prologic/go-gopher

Usage

import "git.mills.io/prologic/go-gopher"

Example

Client

package main

import (
	"fmt"

	"git.mills.io/prologic/go-gopher"
)

func main() {
	res, _ := gopher.Get("gopher://gopher.floodgap.com/")
	bytes, _ := res.Dir.ToText()
	fmt.Println(string(bytes))
}

Server

package main

import (
	"log"

	"git.mills.io/prologic/go-gopher"
)

func hello(w gopher.ResponseWriter, r *gopher.Request) {
	w.WriteInfo("Hello World!")
}

func main() {
	gopher.HandleFunc("/hello", hello)
	log.Fatal(gopher.ListenAndServe("localhost:70", nil))
}

Related

Related projects:

  • gopherproxy
    gopherproxy is Gopher to HTTP proxy that uses go-gopher
    for all of its core functionality.

  • gopherclient
    gopherclient is a cross-platform QT/QML GUI Gopher Client
    using the gopherproxy library as its backend.

License

MIT

GitHub

View Github