---
title: facil.io - lib sock - a making sockets in C easy to use.
toc: true
layout: api
---
# A Simple Socket Library for non-blocking Sockets

This documentation is incomplete. I would love your help to finish it up. Until that time, please read the documentation in [the `sock.h` header file](https://github.com/boazsegev/facil.io/blob/master/lib/facil/core/sock.h).

## Overview

The `sock` linrary was born to solve [many concerns](sock_why) that pop up when using the system sockets API directly.

It supports TCP/IP sockets as well as unix doamin sockets. Pipes can also be attached to the library.

The `sock.h` API can be divided into a few different categories:

- General helper functions

- Accepting connections and opening new sockets.

- Sending and receiving data.

- Read/Write Hooks.

### example

## Constants

## Types

## General Functions

## Socket Initialization and State

## Sending / Receiving Data

## Read/Write Hooks

## Important Notes
