2016-09-14 03:45:49 +00:00
|
|
|
# Gopher protocol library for Golang
|
|
|
|
|
2022-03-31 14:02:21 +00:00
|
|
|
[![Build Status](https://ci.mills.io/api/badges/prologic/go-gopher/status.svg)](https://ci.mills.io/prologic/go-gopher)
|
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
|
2022-04-29 17:08:30 +00:00
|
|
|
$ go get code.as/writefreely/go-gopher
|
2016-10-01 07:33:55 +00:00
|
|
|
```
|
2016-09-14 03:45:49 +00:00
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```#!go
|
2022-04-29 17:08:30 +00:00
|
|
|
import "code.as/writefreely/go-gopher"
|
2016-09-14 03:45:49 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
|
|
|
### Client
|
|
|
|
|
|
|
|
```#!go
|
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
2022-04-29 17:08:30 +00:00
|
|
|
"code.as/writefreely/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"
|
|
|
|
|
2022-04-29 17:08:30 +00:00
|
|
|
"code.as/writefreely/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
|