--- /dev/null
+# fd
+
+Package fd provides a simple API to pass file descriptors
+between different OS processes.
+
+It can be useful if you want to inherit network connections
+from another process without closing them.
+
+Example scenario:
+
+ * Running server receives a "let's upgrade" message
+ * Server opens a Unix domain socket for the "upgrade"
+ * Server starts a new copy of itself and passes Unix domain
+ socket name
+ * New copy starts reading data from the socket
+ * Server sends its state over the socket, also sending the number
+ of network connections to inherit, then it sends those connections
+ using fd.Put()
+ * New server copy reads the state and inherits connections using fd.Get(),
+ checks that everything is OK and writes an "OK" message to the socket
+ * Server receives "OK" message and kills itself
+
+## Documentation
+
+[fd on godoc.org](http://godoc.org/github.com/ftrvxmtrx/fd)