<commit_before># LibSourcey

> C++ Networking Evolved

[![Circle CI](https://circleci.com/gh/sourcey/libsourcey.svg?style=shield&circle-token=<KEY>)](https://circleci.com/gh/sourcey/libsourcey)
[![Doxygen](https://sourcey.com/images/doxygen.svg)](https://sourcey.com/libsourcey)

<!-- <img style="float:left;width:70px;margin-right:15px;margin-bottom:10px" src="https://sourcey.com/images/logos/libsourcey-80x80.png"> -->
LibSourcey is a collection of cross platform C++11 modules and classes that provide developers with an arsenal for rapidly developing high performance network based p2p and media streaming applications. Think of it as the power and performance of `libuv` combined with the features of `FFmpeg`, `OpenCV` and `WebRTC`, all integrated with the ease and readability of the `stl` (C++ Standard Library).

* **Documentation**: [http://sourcey.com/libsourcey](https://sourcey.com/libsourcey)  
* **Repository**: [https://github.com/sourcey/libsourcey](https://github.com/sourcey/libsourcey)  
* **Licence**: [LGPL-2.1+](/LICENSE.md)

## Features

* **Event-based IO** — Core modules are built on top of `libuv` (the underlying C library that powers `nodejs`) and use event-based asynchronous IO throughout to maximize performance and minimize concurrency reliance for building mission critical native and server side apps.

* **Cross platform** — The codebase is cross platform and should compile on any system with access to a modern C++11 compiler.

* **Modular libraries** — Libraries are modular for easy integration into your existing projects, so you can just "include what you need" without incurring extra incumbent bloat.

* **Well tested** — Core modules are well tested with unit tests and stress tested daily in production.

* **Clean and readable code** — Modern C++ design principles have been adhered to throughout for clean and readable code.

* **Networking layer** — A solid network layer is absolutely essential. The networking layer contains TCP, SSL and UDP socket implementations that combine `libuv` under the hood for blazing fast networking, and `openssl` for security and encryption.

* **Media streaming and encoding** — The `av` library consists of thin wrappers around `FFmpeg` and `OpenCV` for media capture, encoding, recording, streaming, analysis and more.

* **Web servers and clients** — A HTTP stack is provided that includes servers, clients, WebSockets, media streaming, file transfers, and authentication. The HTTP parser is based on the super-fast C code used by `nginx`.

* **Realtime messaging** — LibSourcey aims to bridge the gap between desktop, mobile and web by providing performance oriented messaging solutions that work across all platforms.
    * **Socket.IO** — Socket.IO C++ client that supports the latest protocol revision 4 (>= 1.0). Read more about [Socket.IO](http://socket.io).
    * **Symple** — Sourcey's home grown realtime messaging protocol that works over the top of Socket.IO to provide rostering, presence and many other features necessary for building online games and chat applications. [More about Symple](https://sourcey.com/symple).

* **WebRTC support** — WebRTC native support allows you to build p2p desktop and server side applications that inherit LibSourcey's realtime messaging and media capabilities. Take a look at the [examples](https://sourcey.com/libsourcey/examples/) for how to stream live webcam and microphone streams to the browser, and also how to record live WebRTC streams on the server side.

<!--<commit_msg>Update README link to use HTTPS<commit_after># LibSourcey

> C++ Networking Evolved

[![Circle CI](https://circleci.com/gh/sourcey/libsourcey.svg?style=shield&circle-token=<KEY>)](https://circleci.com/gh/sourcey/libsourcey)
[![Doxygen](https://sourcey.com/images/doxygen.svg)](https://sourcey.com/libsourcey)

<!-- <img style="float:left;width:70px;margin-right:15px;margin-bottom:10px" src="https://sourcey.com/images/logos/libsourcey-80x80.png"> -->
LibSourcey is a collection of cross platform C++11 modules and classes that provide developers with an arsenal for rapidly developing high performance network based p2p and media streaming applications. Think of it as the power and performance of `libuv` combined with the features of `FFmpeg`, `OpenCV` and `WebRTC`, all integrated with the ease and readability of the `stl` (C++ Standard Library).

* **Documentation**: [https://sourcey.com/libsourcey](https://sourcey.com/libsourcey)  
* **Repository**: [https://github.com/sourcey/libsourcey](https://github.com/sourcey/libsourcey)  
* **Licence**: [LGPL-2.1+](/LICENSE.md)

## Features

* **Event-based IO** — Core modules are built on top of `libuv` (the underlying C library that powers `nodejs`) and use event-based asynchronous IO throughout to maximize performance and minimize concurrency reliance for building mission critical native and server side apps.

* **Cross platform** — The codebase is cross platform and should compile on any system with access to a modern C++11 compiler.

* **Modular libraries** — Libraries are modular for easy integration into your existing projects, so you can just "include what you need" without incurring extra incumbent bloat.

* **Well tested** — Core modules are well tested with unit tests and stress tested daily in production.

* **Clean and readable code** — Modern C++ design principles have been adhered to throughout for clean and readable code.

* **Networking layer** — A solid network layer is absolutely essential. The networking layer contains TCP, SSL and UDP socket implementations that combine `libuv` under the hood for blazing fast networking, and `openssl` for security and encryption.

* **Media streaming and encoding** — The `av` library consists of thin wrappers around `FFmpeg` and `OpenCV` for media capture, encoding, recording, streaming, analysis and more.

* **Web servers and clients** — A HTTP stack is provided that includes servers, clients, WebSockets, media streaming, file transfers, and authentication. The HTTP parser is based on the super-fast C code used by `nginx`.

* **Realtime messaging** — LibSourcey aims to bridge the gap between desktop, mobile and web by providing performance oriented messaging solutions that work across all platforms.
    * **Socket.IO** — Socket.IO C++ client that supports the latest protocol revision 4 (>= 1.0). Read more about [Socket.IO](http://socket.io).
    * **Symple** — Sourcey's home grown realtime messaging protocol that works over the top of Socket.IO to provide rostering, presence and many other features necessary for building online games and chat applications. [More about Symple](https://sourcey.com/symple).

* **WebRTC support** — WebRTC native support allows you to build p2p desktop and server side applications that inherit LibSourcey's realtime messaging and media capabilities. Take a look at the [examples](https://sourcey.com/libsourcey/examples/) for how to stream live webcam and microphone streams to the browser, and also how to record live WebRTC streams on the server side.

<!--
{'fraction_non_alphanumeric': 0.09836995038979447, 'fraction_numerical': 0.00595322466335932, 'mean_word_length': 5.082758620689655, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 13, 'https://': 21, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '434853', 'n_tokens_mistral': 1894, 'n_tokens_neox': 1795, 'n_words': 859}