https://github.com/gluster/gogfapi
A Go language wrapper around gfapi.
https://github.com/gluster/gogfapi
Last synced: about 1 year ago
JSON representation
A Go language wrapper around gfapi.
- Host: GitHub
- URL: https://github.com/gluster/gogfapi
- Owner: gluster
- License: bsd-2-clause
- Created: 2013-11-21T08:56:21.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2023-01-21T12:36:46.000Z (over 3 years ago)
- Last Synced: 2025-04-12T08:52:26.003Z (about 1 year ago)
- Language: Go
- Homepage:
- Size: 79.1 KB
- Stars: 50
- Watchers: 8
- Forks: 38
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GoGFAPI
[](http://godoc.org/github.com/gluster/gogfapi/gfapi)
A GoGFAPI is Go wrapper around libgfapi, a userspace C-library to access GlusterFS volumes.
GoGAPI provides a Go standard library (`os`) like API to access files on GlusterFS volumes.
More information on the API is available on [godoc.org/github.com/gluster/gofapi/gfapi](https://godoc.org/github.com/gluster/gogfapi/gfapi).
> Note: GoGFAPI uses [cgo](https://golang.org/cmd/cgo/) to bind with libgfapi.
> Important: Commit 83a4c9f12fec7d6e1112b5ebbd614a679940ad45 made changes to the `volume.Init()` function.
> The order of the function parameters was changed to support multiple volfile servers.
## Using GoGFAPI
First ensure that libgfapi is installed on your system. For Fedora and CentOS (and other EL systems) install the `glusterfs-api` package.
Get GoGFAPI by doing a `go get`.
```
go get -u github.com/gluster/gogfapi/gfapi
```
Import `github.com/gluster/gogfapi/gfapi` into your program to use it.
A simple example,
```go
package main
import "github.com/gluster/gogfapi/gfapi"
func main() {
vol := &gfapi.Volume{}
if err := vol.Init("testvol", "localhost"); err != nil {
// handle error
}
if err := vol.Mount(); err != nil {
// handle error
}
defer vol.Unmount()
f, err := vol.Create("testfile")
if err != nil {
// handle error
}
defer f.Close()
if _, err := f.Write([]byte("hello")); err != nil {
// handle error
}
return
}
```