https://github.com/ncw/directio
This is library for the Go language to enable use of Direct IO under all OSes
https://github.com/ncw/directio
Last synced: about 1 year ago
JSON representation
This is library for the Go language to enable use of Direct IO under all OSes
- Host: GitHub
- URL: https://github.com/ncw/directio
- Owner: ncw
- License: mit
- Created: 2013-06-28T16:24:31.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2023-09-20T11:48:55.000Z (almost 3 years ago)
- Last Synced: 2025-04-14T15:01:14.556Z (over 1 year ago)
- Language: Go
- Size: 8.79 KB
- Stars: 323
- Watchers: 13
- Forks: 36
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: COPYING
Awesome Lists containing this project
README
DirectIO
========
This is library for the Go language to enable use of Direct IO under
all supported OSes of Go (except openbsd and plan9).
Direct IO does IO to and from disk without buffering data in the OS.
It is useful when you are reading or writing lots of data you don't
want to fill the OS cache up with.
See here for package docs
http://godoc.org/github.com/ncw/directio
Install
-------
Directio is a Go library and installs in the usual way
go get github.com/ncw/directio
Usage
-----
Instead of using os.OpenFile use directio.OpenFile
in, err := directio.OpenFile(file, os.O_RDONLY, 0666)
And when reading or writing blocks, make sure you do them in chunks of
directio.BlockSize using memory allocated by directio.AlignedBlock
block := directio.AlignedBlock(directio.BlockSize)
_, err := io.ReadFull(in, block)
License
-------
This is free software under the terms of MIT the license (check the
COPYING file included in this package).
Contact and support
-------------------
The project website is at:
- https://github.com/ncw/directio
There you can file bug reports, ask for help or contribute patches.
Authors
-------
- Nick Craig-Wood
Contributors
------------
- Pavel Odintsov