Gopher (RFC 1436) protocol library for the Go (Golang) programming language supporting both client and server
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
.gitignore
.travis.yml
LICENSE
README.md
coverage.txt Fixed tests Apr 16, 2018
gopher.go
gopher_test.go

README.md

Gopher protocol library for Golang

Build Status CodeCov Go Report Card GoDoc

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 github.com/prologic/go-gopher

Usage

import "github.com/prologic/go-gopher"

Example

Client

package main

import (
	"fmt"

	"github.com/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"

	"github.com/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