Go to file
James Mills 0f4bedb6c5
Add CLI client
2017-06-12 23:56:04 -07:00
cmd Add CLI client 2017-06-12 23:56:04 -07:00
examples Add TLS support 2017-02-13 00:18:27 -08:00
.gitignore Initial Commit 2016-09-14 13:45:49 +10:00
.travis.yml Only test on default Go on Travis CI 2016-09-14 17:43:24 +10:00
Dockerfile Added simple gopherd cmd (server) and Dockerfile (image) 2017-06-09 01:15:21 -07:00
LICENSE Added LICENSE 2016-09-14 23:16:43 +10:00
README.md Added simple gopherd cmd (server) and Dockerfile (image) 2017-06-09 01:15:21 -07:00
gopher.go Fixed host selectors by provising a -host option and passing this through to server and handlers 2017-06-09 01:53:08 -07:00
gopher_test.go Improve test suite by using github.com/stretchr/testify 2016-09-16 22:15:34 +10:00

README.md

Gopher protocol library for Golang

Build Status

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"

Or run the builtin (very simple) server:

$ gopherd

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 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