Vous êtes sur la page 1sur 4

1/31/2017 GitHubstefanocasazza/ULib:C++applicationdevelopmentframework,tohelpdeveloperscreateanddeployapplicationsveryfastandmoresimple

Personal Open source Business Explore Pricing Blog Support This repository Search Sign in Sign up

stefanocasazza / ULib Watch 56 Star 396 Fork 47

Code Issues 1 Pull requests 0 Projects 0 Wiki Pulse Graphs

C++ application development framework, to help developers create and deploy applications very fast and more simple
http://www.unirel.com

118 commits 2 branches 40 releases 1 contributor LGPL3.0

Branch: master New pull request Find file Clone or download

stefanocasazza fix Latest commit dfbb912 15 hours ago

cdb clean history 2 years ago

contrib sync 5 months ago

doc sync 5 months ago

examples fix 2 months ago

include fix 15 hours ago

m4 fix 2 months ago

nativejsonbenchmark sync 3 months ago

openwrt/package sync 4 months ago

src/ulib fix 15 hours ago

tests fix 15 hours ago

.travis.yml sync 2 months ago

AUTHORS clean history 2 years ago

ChangeLog add client REDIS 2 years ago

INSTALL clean history 2 years ago

LICENSE change license + optimizations + bug fixing 2 years ago

LICENSE.OpenSSL clean history 2 years ago

Makefile.am sync 3 months ago

Makefile.in sync 3 months ago

NEWS add client REDIS 2 years ago

README change license + optimizations + bug fixing 2 years ago

README.cdb clean history 2 years ago

README.configure clean history 2 years ago

README.md fix 15 hours ago

THANKS clean history 2 years ago

TODO some fix plus prototype 10 months ago

ULib.m4 clean history 2 years ago

ULib.spec.in optimizations + bug fixing 2 years ago

aclocal.m4 sync 5 months ago

autogen.sh clean history 2 years ago

compile some fix 9 months ago

config.guess change license + optimizations + bug fixing 2 years ago

config.sub change license + optimizations + bug fixing 2 years ago

https://github.com/stefanocasazza/ULib 1/4
1/31/2017 GitHubstefanocasazza/ULib:C++applicationdevelopmentframework,tohelpdeveloperscreateanddeployapplicationsveryfastandmoresimple
configure sync 11 days ago
configure.ac sync 11 days ago

configure.help clean history 2 years ago

configure_h.awk clean history 2 years ago

configure_log.awk clean history 2 years ago

depcomp some fix 9 months ago

installsh clean history 2 years ago

ltmain.sh sync 3 months ago

missing some fix 9 months ago

rpm.sh clean history 2 years ago

rpm.sh.in clean history 2 years ago

rpmpkgreq.lst clean history 2 years ago

rpmpkgreq.lst.suse clean history 2 years ago

shtool clean history 2 years ago

testdriver change license + optimizations + bug fixing 2 years ago

ylwrap change license + optimizations + bug fixing 2 years ago

README.md

ULib - C++ library


Travis CI: build passing Coverity Scan: coverity passed

ULib is a highly optimized class framework for writing C++ applications. I wrote this framework as my tool for writing
applications in various contexts. It is a result of many years of work as C++ programmer. I think, in my opinion, that its
strongest points are simplicity, efficiency and sophisticate debugging.

ULib is meant as a very lightweight C++ library to facilitate using C++ design patterns even for very deeply embedded
applications, such as for systems using uclibc along with posix threading support. For this reason, ULib disables language
features that consume memory or introduce runtime overhead, such as rtti and exception handling, and assumes one will
mostly be linking applications with other pure C based libraries rather than using the overhead of the standard C++ library
and other similar class frameworks.

It include as application example a powerful search engine with relative web interface and a multi purpose server plugin
oriented which results, out of John Fremlin accurate investigations, to be one of the fastest web application frameworks for
serving small dynamic webpages and also make easier the usage of shell scripts for CGI application

userver (_tcp | _ssl | _ipc) application server (plugin


oriented)
The current version offers the following features :

HTTP/1.0 and 1.1 protocols supported and experimental implementations of HTTP/2 h2spec compliant.
Persistent connections for HTTP/1.1 and KeepAlive support for HTTP/1.0.
Browser cache management headers: IfModifiedSince/Lastmodified.
Chunkencoding transfers support.
HTTP multirange request support.
Memory caching of document root for small static pages with smart gzip compression and CSS/JS reduction.
Support for automatic update of caching document root with inotify on Linux.
Support for pipelining.
Support for virtual hosts also with SSL.
Support for basic/digest authentication optionally based on url mask.

https://github.com/stefanocasazza/ULib 2/4
1/31/2017 GitHubstefanocasazza/ULib:C++applicationdevelopmentframework,tohelpdeveloperscreateanddeployapplicationsveryfastandmoresimple

Support for directory listings via basic/digest authentication.


Support for uri protection.
Support for aliases/redirection.
Support for switch the site to a maintenance page only.
Support for URL traffic based throttling experimental.
Support for overriden of error messages by local document ErrorDocument/40x|500.html.
Support for RewriteRule lighttpdlike that check for file existence as they do on Apache, some CMS SilverStripe require
it.
Support for apachelike log NCSA extended/combined format
Support for JSONRequest.
Accept HTTP uploads up to 4 GB without increasing memory usage.
General CGI support run any CGI script with automatic output compression using gzip method.
CGI support for shell script processes with automatic management of form and cookie.
CGI support for the XSendfile feature and also supports XAccelRedirect headers transparently.
Support for minify HTML CGI output by wrapping google page speed SDK.
Support for running JavaScript code by wrapping google V8 JavaScript Engine.
HTTP pseudostreaming for FLV video managed transparently.
C Servlet Support with libtcc if available as a backend for dynamic code generation experimental.
Support for running Ruby on Rails applications natively experimental.
Support for running natively PHP applications whith a php embedded library experimental.
Preforking mode to improve concurrency with dedicated process for longtime request.
Support for Windows without preforking.
Customizable builds you can remove unneeded functionality.
Requests cut in phases for modular architecture apachelike.
Configuration file with dedicated section.
Builtin modules :
mod_echo : echo features.

mod_rpc : generic Remote Procedure Call.

mod_http : core features, static file handler and dynamic page ULib Servlet Page.

mod_ssi : Server Side Includes support with enhanced #set, direct include and #exec servlet C/ULib Servlet Page.

mod_nocat : captive portal implementation.

mod_proxy : multifeatures reverse proxy with websocket support.

mod_tsa : server side Time Stamp support.

mod_soap : generic SOAP server services support.

mod_fcgi : thirdparty applications support thru FastCGI interface.

mod_scgi : module that implements the client side of the SCGI protocol experimental.

mod_shib : web single signon support experimental.

mod_geoip : geolocation support experimental.

mod_stream : simple streaming support experimental.

mod_socket : Web Socket application framework experimental.

Security protection :
HTTP Session Hijacking mitigation.
Algorithmic Complexity Attacks prevention by randomizing hash seed.
DNS rebinding prevention by RFC1918 filtering and Host header validation.
selective uri support DOS regex for HTTP Strict Transport Security.
Immune to Slow Read DoS attack
High SSL server quality score

Who is Using ULib


It is the main software component of city of Florence wireless network

Benchmark

https://github.com/stefanocasazza/ULib 3/4
1/31/2017 GitHubstefanocasazza/ULib:C++applicationdevelopmentframework,tohelpdeveloperscreateanddeployapplicationsveryfastandmoresimple

userver application server is since 10th round in the TechEmpower's web framework benchmarks. This independent work tests
a large number of frameworks and platforms against a set of tests common to web applications, such as JSON serialization,
database queries and templating.

Contributing
1. Fork it http://github.com//ULib/fork
2. Create your feature branch gitcheckoutbmynewfeature
3. Commit your changes gitcommitam'Addsomefeature'
4. Push to the branch gitpushoriginmynewfeature
5. Create new Pull Request

License
ULib is normally built and installed as a set of shared object libraries and header files. These libraries and headers are installed
using directories selected through a "configure" script that has been prepared with automake and autoconf. As such, they
should build and install similarly to and in a manner compatible and consistent with most other GNU software. ULib is Free
Software under the LGPL and it is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Comments and suggestions are welcome.

stefanocasazza<stefano.casazza@gmail.com>

2017 GitHub, Inc. Terms Privacy Security Status Help Contact GitHub API Training Shop Blog About

https://github.com/stefanocasazza/ULib 4/4

Vous aimerez peut-être aussi