npipe: Index | Files

package npipe

import ""

Package npipe provides a pure Go wrapper around Windows named pipes.

!! Note, this package is Windows-only. There is no code to compile on linux.

Windows named pipe documentation:

Note that the code lives at (v2 branch) but should be imported as (the package name is still npipe).

npipe provides an interface based on stdlib's net package, with Dial, Listen, and Accept functions, as well as associated implementations of net.Conn and net.Listener. It supports rpc over the connection.


* Deadlines for reading/writing to the connection are only functional in Windows Vista/Server 2008 and above, due to limitations with the Windows API.

* The pipes support byte mode only (no support for message mode)


The Dial function connects a client to a named pipe:

conn, err := npipe.Dial(`\\.\pipe\mypipename`)
if err != nil {
	<handle error>
fmt.Fprintf(conn, "Hi server!\n")
msg, err := bufio.NewReader(conn).ReadString('\n')

The Listen function creates servers:

ln, err := npipe.Listen(`\\.\pipe\mypipename`)
if err != nil {
	// handle error
for {
	conn, err := ln.Accept()
	if err != nil {
		// handle error
	go handleConnection(conn)


Package Files


Package npipe is imported by 4 packages. Updated 2019-11-03. Refresh now. Tools for package owners.