• Stars
    star
    298
  • Rank 139,663 (Top 3 %)
  • Language
    Go
  • License
    MIT License
  • Created over 11 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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

More Repositories

1

stressdisk

Stress test your disks / memory cards / USB sticks before trusting your valuable data to them
Go
320
star
2

swift

Go language interface to Swift / Openstack Object Storage / Rackspace cloud files (golang)
Go
313
star
3

gotemplate

Package based templating system for Go
Go
258
star
4

gmp

Go language interface to GMP - GNU Multiprecision Library (golang)
Go
108
star
5

go-nflog-acctd

IP accounting using NFLOG under Linux iptables
Go
53
star
6

oauthproxy

This is an oauth2 proxy server
Go
34
star
7

johnroids

Johnroids is an old style asteroids game implemented in go, gopherjs and go/wasm
Go
29
star
8

dropbox

Go (golang) client library for the Dropbox core and Datastore API with support for uploading and downloading encrypted files.
Go
11
star
9

go-deadlocks-talk

Sample code for my Go Deadlocks talk
Go
9
star
10

make_test_files

A program to generate test files
Go
8
star
11

fsyncbench

Benchmark fsync
Go
8
star
12

fetch-actions-logs

Fetch your GitHub Actions logs
Go
8
star
13

iprime

All integer Mersenne prime checker
C++
7
star
14

oxo3d

Oxo3d - 3D noughts and crosses / tic tac toe
Go
6
star
15

ioccc2012

Mersenne prime prover for IOCCC 2012
C
6
star
16

mirror

Neopixel based Infinity Mirror running on Raspbery Pi Pico-W with Micropython
Python
5
star
17

snake-puzzle

A solver for the Snake Puzzle using python with a Jupyter notebook
Jupyter Notebook
5
star
18

rcloneguiexperiment

Rclone GUI experiment
JavaScript
5
star
19

pwhash

Mirror of antihe.ro/pwhash
Go
5
star
20

pslq

Go (golang) library and cli tool for using the PSLQ integer relation algorithm.
Go
3
star
21

mandelterm

View Mandelbrot sets in your terminal
Go
3
star
22

www

Nick Craig-Wood's Website
Python
2
star
23

router-rebooter

Reboots your Netgear DG834 ADSL router when the internet connection drops
Python
2
star
24

parse-actions-logs

Parse GitHub actions logs for go test results
Go
2
star
25

.github

Default community health files for ncw
1
star
26

rclone-archive

Archive of old rclone branches
Go
1
star
27

euler_bbp

Programs and paper to demonstrate Euler's BBP-type formulae for pi
TeX
1
star