GithubHelp home page GithubHelp logo

tempbottle / libre Goto Github PK

View Code? Open in Web Editor NEW

This project forked from muromec/libre

0.0 3.0 0.0 472 KB

Toolkit library for asynchronous network IO with protocol stacks including SIP, SDP, RTP, STUN, TURN, ICE, BFCP and DNS.

Makefile 2.77% C 92.67% C++ 4.56%

libre's Introduction

README
------

libre - "Generic library for real-time communications with async IO support"
Copyright (C) 2010 - 2012 Creytiv.com

Distributed under BSD license


Design goals:

* Portable POSIX source code (ANSI C89 and ISO C99 standard)
* Robust, fast, low memory footprint
* RFC compliance
* IPv4 and IPv6 support


Modules:

  name:     status:       description:

* base64    testing       Base-64 encoding/decoding functions
* bfcp      unstable      The Binary Floor Control Protocol (BFCP)
* conf      testing       Configuration file parser
* crc32     testing       32-bit CRC defined in ITU V.42
* dbg       testing       Debug printing
* dns       testing       DNS resolving (NAPTR, SRV, A)
* fmt       testing       Formatted printing and regular expression
* hash      testing       Hashmap table
* hmac      testing       HMAC: Keyed-Hashing for Message Authentication
* httpauth  unstable      HTTP-based Authentication (RFC 2617)
* ice       unstable      Interactive Connectivity Establishment (ICE)
* jbuf      testing       Jitter buffer
* list      stable        Sortable doubly-linked list handling
* lock      testing       Resource locking functions
* main      testing       Main poll loop
* mbuf      stable        Linear memory buffers
* md5       stable        The MD5 Message-Digest Algorithm (RFC 1321)
* mem       stable        Memory referencing
* mod       testing       Run-time module loading
* mqueue    testing       Thread-safe message queue
* natbd     unstable      NAT Behavior Discovery using STUN
* net       unstable      Networking routines
* rtp       testing       Real-time Transport Protocol
* sa        stable        Socket Address functions
* sdp       unstable      Session Description Protocol
* sha       testing       Secure Hash Standard, NIST, FIPS PUB 180-1
* sip       unstable      Core SIP library
* sipevent  unstable      SIP Event framework
* sipreg    testing       SIP register client
* sipsess   unstable      SIP Sessions
* stun      unstable      Session Traversal Utilities for NAT (STUN)
* sys       testing       System information
* tcp       testing       TCP transport
* telev     testing       Telephony Events (RFC 4733)
* tls       unstable      Transport Layer Security
* tmr       stable        Timer handling
* turn      testing       Obtaining Relay Addresses from STUN (TURN)
* udp       testing       UDP transport
* uri       testing       Generic URI library

legend:
 "stable"       - Code complete; Stable code and stable API
 "testing"      - Code complete, but API might change
 "unstable"     - Code complete but not completely tested
 "development"  - Code is under development


Features:

* RFC 1321 - The MD5 Message-Digest Algorithm
* RFC 1886 - DNS Extensions to support IP version 6
* RFC 2032 - RTP Payload Format for H.261 Video Streams
* RFC 2617 - HTTP Authentication: Basic and Digest Access Authentication
* RFC 2782 - A DNS RR for Specifying the Location of Services (DNS SRV)
* RFC 2915 - The Naming Authority Pointer (NAPTR) DNS Resource Record
* RFC 3261 - SIP: Session Initiation Protocol
* RFC 3263 - Locating SIP Servers
* RFC 3264 - An Offer/Answer Model with SDP
* RFC 3265 - SIP-Specific Event Notification
* RFC 3327 - SIP Extension Header Field for Registering Non-Adjacent Contacts
* RFC 3428 - SIP Extension for Instant Messaging
* RFC 3489 - STUN - Simple Traversal of UDP Through NATs
* RFC 3515 - The SIP Refer Method
* RFC 3550 - RTP: A Transport Protocol for Real-Time Applications
* RFC 3551 - RTP Profile for Audio and Video Conferences with Minimal Control
* RFC 3555 - MIME Type Registration of RTP Payload Formats
* RFC 3556 - SDP Bandwidth Modifiers for RTCP Bandwidth
* RFC 3581 - An Extension to SIP for Symmetric Response Routing
* RFC 3605 - RTCP attribute in SDP
* RFC 3969 - The IANA URI Parameter Registry for SIP
* RFC 3994 - Indication of Message Composition for Instant Messaging
* RFC 4346 - The TLS Protocol Version 1.1
* RFC 4566 - SDP: Session Description Protocol
* RFC 4582 - The Binary Floor Control Protocol (BFCP)
* RFC 4585 - Extended RTP Profile for RTCP-Based Feedback
* RFC 4733 - RTP Payload for DTMF Digits, Telephony Tones, and Teleph. Signals
* RFC 4961 - Symmetric RTP / RTP Control Protocol (RTCP)
* RFC 5118 - SIP Torture Test Messages for IPv6
* RFC 5245 - Interactive Connectivity Establishment (ICE)
* RFC 5389 - Session Traversal Utilities for NAT (STUN)
* RFC 5626 - Managing Client-Initiated Connections in SIP
* RFC 5761 - Multiplexing RTP Data and Control Packets on a Single Port
* RFC 5766 - Traversal Using Relays around NAT (TURN)
* RFC 5768 - Indicating Support for ICE in SIP
* RFC 5769 - Test vectors for STUN
* RFC 5780 - NAT Behaviour Discovery Using STUN
* RFC 6026 - Correct Transaction Handling for 2xx Resp. to SIP INVITE Requests
* RFC 6156 - TURN Extension for IPv6
* Symmetric RTP
* ITU-T G.711 Appendix I and Appendix II


Supported platforms:

* Linux
* FreeBSD
* OpenBSD
* NetBSD
* Symbian OS
* Solaris
* Windows
* Apple Mac OS X and iOS
* Android


Supported compilers:

* gcc (v2.9x to v4.x)
* gcce
* ms vc2003 compiler
* codewarrior


Feedback:

- Please send feedback to <[email protected]>


Coding guidelines:

* Use enum for constants where appropriate
* Use const as much as possible (where appropriate)
* Use C99 data types (intN_t, uintN_t, bool)
* Hide data-types in .c files where possible (use struct foo)
* Avoid malloc/free, use mem_alloc/mem_deref instead
* CVS/svn/git tags are NOT allowed in the code!
* Avoid bit-fields in structs which are not portable
* Use dummy handlers for timing-critical callbacks
* return err, return alloced objects as pointer-pointers
* in allocating functions, first arg is always double pointer
* Use POSIX error-codes; EINVAL for invalid args, EBADMSG for
  parse errors and EPROTO for protocol errors

libre's People

Contributors

muromec avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.