Win32 IO-related utilities for Go
Go
Clone or download
jstarks Merge pull request #82 from jstarks/pipe_message_mode
Support pipe message read mode
Latest commit 6792112 Jun 25, 2018
Permalink
Failed to load latest commit information.
archive/tar Use existing PAX headers for time Mar 30, 2016
backuptar Add support for EAs to Windows tars Aug 2, 2017
vhd Adding VHD library with simple function, updating mksyscall Jul 12, 2017
wim replace unnecessary mod17 function with builtin mod, see #37 and #38 Jan 12, 2017
.gitignore Add .gitignore Apr 6, 2016
LICENSE Add file and pipe Windows wrappers Jan 31, 2016
README.md Add reference to code of conduct Jun 21, 2016
backup.go Add support for EAs to Windows tars Aug 2, 2017
backup_test.go Add interface to BackupRead/BackupWrite Feb 19, 2016
ea.go Add support for EAs to Windows tars Aug 2, 2017
ea_test.go Add support for EAs to Windows tars Aug 2, 2017
file.go Clean up message mode pipe handling, add test Jun 25, 2018
fileinfo.go Added runtime.KeepAlive for the new stricter 1.8 GC May 3, 2017
pipe.go Clean up message mode pipe handling, add test Jun 25, 2018
pipe_test.go Clean up message mode pipe handling, add test Jun 25, 2018
privilege.go Merge pull request #33 from cezarsa/master Nov 21, 2016
privileges_test.go Add functions for running with privileges Feb 19, 2016
reparse.go Handle long paths correctly in reparse points Apr 12, 2016
sd.go Include build tags to allow go get on non-Windows platforms. Fixes #30 Oct 6, 2016
sd_test.go Call Fatalf to use the format specifier Apr 30, 2018
syscall.go Include build tags to allow go get on non-Windows platforms. Fixes #30 Oct 6, 2016
zsyscall_windows.go Remove workaround to perf issues in go1.6 Jan 9, 2018

README.md

go-winio

This repository contains utilities for efficiently performing Win32 IO operations in Go. Currently, this is focused on accessing named pipes and other file handles, and for using named pipes as a net transport.

This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go to reuse the thread to schedule another goroutine. This limits support to Windows Vista and newer operating systems. This is similar to the implementation of network sockets in Go's net package.

Please see the LICENSE file for licensing information.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Thanks to natefinch for the inspiration for this library. See https://github.com/natefinch/npipe for another named pipe implementation.