go-gopher/README.md

81 lines
1.9 KiB
Markdown
Raw Normal View History

2016-09-14 03:45:49 +00:00
# Gopher protocol library for Golang
2018-12-30 13:29:30 +00:00
[![Build Status](https://cloud.drone.io/api/badges/prologic/go-gopher/status.svg)](https://cloud.drone.io/prologic/go-gopher)
[![CodeCov](https://codecov.io/gh/prologic/go-gopher/branch/master/graph/badge.svg)](https://codecov.io/gh/prologic/go-gopher)
2017-06-21 07:03:34 +00:00
[![Go Report Card](https://goreportcard.com/badge/prologic/go-gopher)](https://goreportcard.com/report/prologic/go-gopher)
2021-07-12 13:54:10 +00:00
[![GoDoc](https://godoc.org/git.mills.io/prologic/go-gopher?status.svg)](https://godoc.org/git.mills.io/prologic/go-gopher)
[![Sourcegraph](https://sourcegraph.com/git.mills.io/prologic/go-gopher/-/badge.svg)](https://sourcegraph.com/git.mills.io/prologic/go-gopher?badge)
2016-09-14 07:36:45 +00:00
2016-09-14 03:45:49 +00:00
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
2016-10-01 07:33:55 +00:00
```#!bash
2021-07-12 13:54:10 +00:00
$ go get git.mills.io/prologic/go-gopher
2016-10-01 07:33:55 +00:00
```
2016-09-14 03:45:49 +00:00
## Usage
```#!go
2021-07-12 13:54:10 +00:00
import "git.mills.io/prologic/go-gopher"
2016-09-14 03:45:49 +00:00
```
## Example
### Client
```#!go
package main
import (
"fmt"
2021-07-12 13:54:10 +00:00
"git.mills.io/prologic/go-gopher"
2016-09-14 03:45:49 +00:00
)
func main() {
res, _ := gopher.Get("gopher://gopher.floodgap.com/")
2020-08-03 10:44:32 +00:00
bytes, _ := res.Dir.ToText()
2016-09-14 03:45:49 +00:00
fmt.Println(string(bytes))
}
```
### Server
```#!go
package main
import (
"log"
2021-07-12 13:54:10 +00:00
"git.mills.io/prologic/go-gopher"
2016-09-14 03:45:49 +00:00
)
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))
}
```
2016-10-01 07:33:55 +00:00
## Related
Related projects:
2021-07-12 13:54:10 +00:00
- [gopherproxy](https://git.mills.io/prologic/gopherproxy)
2016-10-01 07:33:55 +00:00
gopherproxy is Gopher to HTTP proxy that uses go-gopher
for all of its core functionality.
2021-07-12 13:54:10 +00:00
- [gopherclient](https://git.mills.io/prologic/gopherclient)
2016-10-01 07:33:55 +00:00
gopherclient is a cross-platform QT/QML GUI Gopher Client
using the gopherproxy library as its backend.
2016-09-14 03:45:49 +00:00
## License
MIT