directio

This is library for the Go language to enable use of Direct IO under all OSes

  • Owner: ncw/directio
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

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:

There you can file bug reports, ask for help or contribute patches.

Authors

Contributors

Main metrics

Overview
Name With Ownerncw/directio
Primary LanguageGo
Program languageGo (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2013-06-28 16:24:31
Pushed At2023-09-20 11:48:55
Last Commit At2018-02-24 20:34:47
Release Count6
Last Release Namev1.0.5 (Posted on 2019-03-28 14:49:47)
First Release Namev1.0.0 (Posted on 2018-05-31 11:18:12)
用户参与
Stargazers Count325
Watchers Count13
Fork Count36
Commits Count10
Has Issues Enabled
Issues Count11
Issue Open Count3
Pull Requests Count2
Pull Requests Open Count1
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private