All Projects → stefanocasazza → Ulib

stefanocasazza / Ulib

Licence: other
C++ application development framework, to help developers create and deploy applications quickly and simply

Programming Languages

cplusplus
227 projects

Projects that are alternatives of or similar to Ulib

Hledger
A reliable, user-friendly Plain Text Accounting tool with command line, terminal and web interfaces.
Stars: ✭ 1,887 (+106.91%)
Mutual labels:  web-application, library
React Rainbow
🌈 React Rainbow Components. Build your web application in a snap.
Stars: ✭ 1,662 (+82.24%)
Mutual labels:  web-application, library
Polysnap
A work in progress polygon operations library with integer snap-rounding
Stars: ✭ 14 (-98.46%)
Mutual labels:  library
Rust Csv
A CSV parser for Rust, with Serde support.
Stars: ✭ 911 (-0.11%)
Mutual labels:  library
Serf
Mirror of Apache Serf
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Candyview
Implement any RecyclerView in just 1 Line. CandyView handles everything for you.
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Humblelogging
HumbleLogging is a lightweight C++ logging framework. It aims to be extendible, easy to understand and as fast as possible.
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Androidlibs
🔥正在成为史上最全分类 Android 开源大全~~~~(长期更新 Star 一下吧)
Stars: ✭ 7,148 (+683.77%)
Mutual labels:  library
Text Minimap
Generate text minimap/preview using Braille Patterns
Stars: ✭ 21 (-97.7%)
Mutual labels:  library
Jodel Web
[PHP] JodelBlue is a Web-App and Browser-Client for the Jodel App. No registration required! Browse Jodels all over the world.
Stars: ✭ 15 (-98.36%)
Mutual labels:  web-application
Honeyjs
An open source Javascript Honey Pot implementation
Stars: ✭ 20 (-97.81%)
Mutual labels:  library
Eglo
EGL/X11 Abstraction Library for Pocket C.H.I.P
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Rxsociallib
分享登录工具库,简洁配置,可配合RxJava/RxJava2使用,支持QQ微信微博
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Ambient
Lightweight ambient light javascript library for HTML image and video elements
Stars: ✭ 20 (-97.81%)
Mutual labels:  library
Vue Echarts V3
Vue.js(v2.x+) component wrap for ECharts.js(v3.x+)
Stars: ✭ 884 (-3.07%)
Mutual labels:  library
Meowbottomnavigation
Android Meow Bottm Navigation
Stars: ✭ 912 (+0%)
Mutual labels:  library
Cordova Plugin Camera
Apache Cordova Plugin camera
Stars: ✭ 879 (-3.62%)
Mutual labels:  library
Drf Tus
A Tus (tus.io) library for Django Rest Framework
Stars: ✭ 15 (-98.36%)
Mutual labels:  library
Chatify
A Laravel package that allows you to add a complete user messaging system into your new/existing Laravel application.
Stars: ✭ 885 (-2.96%)
Mutual labels:  library
Go Deb Version
A golang library for parsing deb package versions
Stars: ✭ 21 (-97.7%)
Mutual labels:  library

ULib - C++ library

Travis CI: Build Status Coverity Scan: Coverity Scan Build Status

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 light-weight 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, 1.1 and HTTP/2 (h2spec compliant) protocols supported.
  • Persistent connections for HTTP/1.1 and Keep-Alive support for HTTP/1.0.
  • Browser cache management (headers: If-Modified-Since/Last-modified).
  • Chunk-encoding transfers support.
  • HTTP multi-range request support.
  • Memory caching of document root for (small) static pages with smart (gzip-zopfli,brotli) 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.
  • 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 (ex. ErrorDocument/400.html).
  • Support for RewriteRule (lighttpd-like) that check for file existence as they do on Apache, some CMS (SilverStripe) require it.
  • Support for (apache-like) log NCSA extended/combined format.
  • Support for JSONRequest.
  • Accept HTTP uploads (with possible resume) up to 4 GB without increasing memory usage.
  • General CGI support (run any CGI script) with automatic output compression (using gzip,brotli method).
  • CGI support for shell script processes (with automatic management of form and cookie).
  • CGI support for the X-Sendfile feature and also supports X-Accel-Redirect 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 pseudo-streaming 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).
  • Support for load balance between physical server via udp brodcast (experimental).
  • Support for serialize object by FlatBuffer schema-less like implementation.
  • Support for SSE (Server Sent Event) via ULib Servlet Page (USP) dedicate process.
  • Preforking mode to improve concurrency with dedicated process for long-time request.
  • Support for Windows (without preforking).
  • Customizable builds (you can remove unneeded functionality).
  • Requests cut in phases for modular architecture (apache-like).
  • Configuration file with dedicated section.
  • Built-in 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 : multi-features reverse proxy with websocket support.
    • mod_tsa : server side Time Stamp support.
    • mod_soap : generic SOAP server services support.
    • mod_fcgi : third-party applications support thru FastCGI interface.
    • mod_scgi : module that implements the client side of the SCGI protocol (experimental).
    • mod_shib : web single sign-on support (experimental).
    • mod_geoip : geolocation support (experimental).
    • mod_stream : simple streaming support (experimental).
    • mod_socket : Web Socket application framework (experimental).
  • Security protection :
  • Immune to Slow Read DoS attack.
  • Provide evasive action in the event of an HTTP DoS or DDoS attack or brute force attack.
  • High SSL server quality score.

Who is Using ULib

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

Benchmark

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.

Getting Started With ULib (donated generously by jonathan kelly)

Contributing

  1. Fork it ( http://github.com/stefanocasazza/ULib/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  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.

stefano casazza <[email protected]>

Please, excuse me for my bad english, it's not my natural language, if some parts of this page seems wrong to you, feel free to suggest me better ones.

Donation

If this project help you reduce time to develop, you can give me a cup of coffee :)

Donate

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].