Win32 IO-related utilities for Go
Clone or download
kevpar Merge pull request #108 from kevpar/etw-set-provider-info
Set ETW provider info so it's always treated as TraceLogging
Latest commit 75bf6ca Jan 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
archive/tar Use existing PAX headers for time Mar 30, 2016
backuptar Changes based on PR Aug 3, 2018
internal/etw Merge pull request #108 from kevpar/etw-set-provider-info Jan 17, 2019
pkg/etwlogrus Add test cases for logging empty slices Jan 11, 2019
tools/etw-provider-gen Add a simple tool to generate provider ID's Jan 15, 2019
vhd Add DetachVhd entrypoint Aug 23, 2018
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 Convert all files to unix line endings Aug 23, 2018
ea_test.go Convert all files to unix line endings Aug 23, 2018
file.go Clean up message mode pipe handling, add test Jun 25, 2018
fileinfo.go Changes based on PR Aug 3, 2018
pipe.go Merge pull request #80 from nanomsg/norace2 Jul 19, 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.