Framework for Enterprise Application Development in c++, HTTP1/HTTP2/HTTP3 compliant, Supports multiple server backends

Overview

The ffead-cpp Framework

ffead-cpp is a web-framework, application framework, utilities all bundled into one. It also provides an embedded HTTP/Web-Socket compliant high-performance server core. It is a collection of modules all geared towards performing individual roles which together form the cohesive back-bone of ffead-cpp.

It provides a very simple to use and maintain web-framework library with advanced features like Reflection, Dependency Injection (IOC), Inbuilt REST/SOAP support, Security/Authentication features. Moreover implementation for interfacing to caching tools like Memcached/Redis are provided in-built. Database integration/ORM framework (SDORM) solves all major issues with respect to interfacing with SQL/No-SQL database alike.

Multi-level serialization or template level serialization is a high point of ffead-cpp core serialization run-time. Any C++ POCO class can be marked as serializable and the run-time will take care of marshalling/un-marshalling the object to its intended serializable form and back(JSON/XML/BINARY).

ffead-cpp can be easily driven by XML configuration, Services/Controllers/Filters/Interfaces/API(s) are all simple POCO classes without any need for them to extend any classes. The differentiating feature in ffead-cpp is the usage/implementation/support for markers (Annotations in java). Simple #pragma directives can now be used to drive the entire configuration in ffead-cpp, so you can just forget XML configuration.

All in all ffead-cpp is the gap in the world of C++ web application or enterprise application development which I have tried to fill with my humble/honest effort.

Both cmake and autoconf builds are supported

Detailed OS specific instructions, instructions for installing the available server backends and docker/docker-compose scripts are located at docker

Build validated for the following Operating systems/Toolchains

Ubuntu CentOS OpenSUSE
Gentoo ArchLinux Alpine Linux
MacOS Windows Cygwin Windows mingw-w64
ArchLinux (mingw-w64 cross compiler) Ubuntu (musl cross compiler) Ubuntu (android cross compiler)
Solaris FreeBSD Emscripten

Latest Techempower benchmarks

Features

  • Multiple server backends (HTTP 1.1/HTTP 2/HTTP 3)
    embedded (HTTP1.1) nghttp2 (HTTP2) quiche (HTTP3) seastar
    apache cinatra (c++) lithium (c++) drogon (c++)
    libreactor (c) h2o (c) vweb (vlang) picov (vlang)
    actix (rust) hyper (rust) thruster (rust) rocket (rust)
    h2o.cr (crystal) crystal-http (crystal) fasthttp (golang) gnet (golang)
    firenio (java) rapidoid (java) wizzardo-http (java) hunt (d)
    swift-nio (swift) http.jl (julia) mongols (c) uv-cpp (c++)
    CppServer (c++) nginx openlitespeed (experimental)
  • Support for multiple I/O event notification engines,
    • io_uring - Linux kernel >= 5.6
    • epoll - Linux
    • kqueue - BSD/MacOS
    • event_ports/devpoll - Solaris
    • wepoll - Windows (IOCP based epoll library)
    • poll/select - On all platforms that support these API's
  • Embedded HTTP Server with single process and thread-pool backends
  • SSL/TLS support
  • Web Socket Support
  • Advanced ORM - SDORM (sql/monogo)
  • Raw SQL API for postgresql (libpq)
  • Cache API (memcached/redis)
  • Improved Thread/ThreadPool API(s)
  • Marker based configuration (java style annotations)
  • Reflection support
  • Serialization support
  • Date/Time Ultility functions
  • Dependency Injection
  • Serverside dynamic C++ Pages and template engine (HTML/C++ pages)
  • Sample app for Webrtc Signalling (websocket + api) (horizontally scalable peerjs compatible signalling server)
  • Embedded HTTP2.0 Server support (experimental)

Quickstart (Using cmake/make)

  • Install cmake >= 3.8.2 and prerequisites
  • mkdir build && cd build
  • cmake -DSRV_EMB=on -DMOD_SDORM_MONGO=on ..
  • make install -j4 (Build ffead-cpp along-with the sample applications in web + generate ffead-cpp binary)
  • Sip some coffee
  • cd ../ffead-cpp-5.0-bin/ (Navigate to the ffead-cpp binary folder)
  • chmod +x *.sh
  • ./server.sh (Startup ffead-cpp Njoy!!)

Quickstart (Using cmake/ninja)

  • Install cmake >= 3.8.2, ninja and prerequisites
  • mkdir build && cd build
  • cmake -GNinja -DSRV_EMB=on -DMOD_SDORM_MONGO=on ..
  • ninja install (Build ffead-cpp along-with the sample applications in web + generate ffead-cpp binary)
  • Sip some coffee
  • cd ../ffead-cpp-5.0-bin/ (Navigate to the ffead-cpp binary folder)
  • chmod +x *.sh
  • ./server.sh (Startup ffead-cpp Njoy!!)

Quickstart (Using autoconf)

  • Install autoconf, automake and libtool prerequisites
  • ./autogen.sh
  • ./configure --enable-srv_emb=yes --enable-mod_sdormmongo=yes
  • make install -j4 (Build ffead-cpp along-with the sample applications in web + generate ffead-cpp binary)
  • Sip some coffee
  • cd ffead-cpp-5.0-bin/ (Navigate to the ffead-cpp binary folder)
  • chmod +x *.sh
  • ./server.sh (Startup ffead-cpp Njoy!!)

Webrtc Example (Uses peerjs)

For further details checkout the wiki page

Comments
  • Server not starting (Segmentation fault (core dumped))

    Server not starting (Segmentation fault (core dumped))

    Setup: ubuntu 18.04 ffead-cpp from master branch Following the quick start steps got the following 1- sudo apt update -yqq && sudo apt install -yqq autoconf-archive gcc g++ cmake unzip libssl-dev uuid-dev odbc-postgresql unixodbc unixodbc-dev libcurl4-openssl-dev libmemcached-dev libmongoc-dev libhiredis-dev wget netcat -> success

    2- libcuckoo problem due to adding namespace libcuckoo in its header files corrected by adding namespace libcuckoo:: to declaration in ffead sources 4- make install -> success 5- ./server.sh waits for a while and then exists no server listening to 8080 attached are ffead.log and logs/job.log

    ffead.log jobs.log

    Appreciate your help

    opened by nexasone 6
  • Serialize compile bugs

    Serialize compile bugs

    ../modules/serialization/SerializeBase.h:117:6: error: unknown type name '_Rb_tree_color' ../modules/serialization/xml/XMLSerialize.h:100:14: error: no viable conversion from 'const value_type' (aka 'Element *const') to 'Element' Element entry = message.getChildElements().at(var);

    This is on FreeBSD 10. I should also mention that the configure script failed when checking for c++11 but my system does support it and uses -std=c++11 flag. I just set the requiring variable to false and the script succeeded, not sure if that is going to cause issues though.

    The _Rb_tree_color is only referenced once in the source and not defined anywhere that I could see.

    opened by art1351 5
  • Configure error

    Configure error

    After running autogen.sh successfully, running configure results in the following error:

    ./configure: line 23751: syntax error near unexpected token else' ./configure: line 23751:else'

    This is from a clone of the latest release. Version 1.9 configures/builds without error.

    opened by tradetree 4
  • autogen fails on 32bit cygwin

    autogen fails on 32bit cygwin

    [email protected] /cygdrive/c/dev32/ffead-cpp-master $ ./autogen.sh libtoolize: putting auxiliary files in .'. libtoolize: linking file./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, m4'. libtoolize: linking filem4/libtool.m4' libtoolize: linking file m4/ltoptions.m4' libtoolize: linking filem4/ltsugar.m4' libtoolize: linking file m4/ltversion.m4' libtoolize: linking filem4/lt~obsolete.m4' libtoolize: Consider adding -I m4' to ACLOCAL_AMFLAGS in Makefile.am. libtoolize: putting auxiliary files in.'. libtoolize: copying file ./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR,m4'. libtoolize: copying file m4/libtool.m4' libtoolize: copying filem4/ltoptions.m4' libtoolize: copying file m4/ltsugar.m4' libtoolize: copying filem4/ltversion.m4' libtoolize: copying file m4/lt~obsolete.m4' libtoolize: Consider adding-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:5: require Automake 2.0, but have 1.11.6 autoreconf-2.69: automake failed with exit status: 1

    ...

    according to cygwin.com their automake supprt only goes up to 1.15

    opened by jwaterloo 3
  • Desperately need help on windows

    Desperately need help on windows

    I have for years been watching this project progress. I really would like to use it but can't build it on windows. I have tried all of your cygwin documentation unsuccessfully. I was esctatic recently with your mingw and autotools support. So I gave that a try too but couldn't get it to build. Though this rond I got much further than ties past. On Mingw I got everything to compile but ffead-cpp itself following are the errors. Could you please provide a step by step 64Bit windows tutorial either MingW or Cygwin but preferably MingW since it is lighter.

    $ make Making all in src/autotools make[1]: Entering directory /c/temporary/mingw_more/ffead-cpp-master/src/autoto ols' depbase=echo ../ServiceTask.lo | sed 's|[^/]_$|.deps/&|;s|.lo$||';\ /bin/sh ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../include -I"../../include" -I/mingw/include -L/mingw/lib -D__USE_MINGW_ ANSI_STDIO=1 -O0 -I/mingw/include -L/mingw/lib -MT ../ServiceTask.lo -MD -MP -M F $depbase.Tpo -c -o ../ServiceTask.lo ../ServiceTask.cpp &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../include -I../../include -I/mi ngw/include -L/mingw/lib -D__USE_MINGW_ANSI_STDIO=1 -O0 -I/mingw/include -L/ming w/lib -MT ../ServiceTask.lo -MD -MP -MF ../.deps/ServiceTask.Tpo -c ../ServiceTa sk.cpp -DDLL_EXPORT -DPIC -o ../.libs/ServiceTask.o ../ServiceTask.cpp:488:2: warning: this decimal constant is unsigned only in ISO C90 [enabled by default] int connKeepAlive = 10, techunkSiz = 8192, maxReqHdrCnt = 100, maxEntitySize = 2147483648; ^ In file included from c:\mingw\include\unistd.h:95:0, from ../../include/Date.h:27, from ../../include/DateFormat.h:26, from ../../include/ServiceTask.h:28, from ../ServiceTask.cpp:23: c:\mingw\include\parts\time.h:65:8: error: redefinition of 'struct timespec' struct timespec ^ In file included from ../../include/Date.h:26:0, from ../../include/DateFormat.h:26, from ../../include/ServiceTask.h:28, from ../ServiceTask.cpp:23: ../../include/mingw.h:73:8: error: previous definition of 'struct timespec' struct timespec { ^ ../../include/mingw.h:93:12: error: previous declaration of 'int nanosleep(const timespec_, timespec_)' with 'C++' linkage inline int nanosleep(const struct timespec *req, struct timespec *rem) { ^ In file included from ../../include/Date.h:27:0, from ../../include/DateFormat.h:26, from ../../include/ServiceTask.h:28, from ../ServiceTask.cpp:23: c:\mingw\include\unistd.h:105:59: error: conflicts with new declaration with 'C' linkage int nanosleep( const struct timespec *, struct timespec \* ); ^ In file included from ../../include/Date.h:26:0, from ../../include/DateFormat.h:26, from ../../include/ServiceTask.h:28, from ../ServiceTask.cpp:23: ../../include/mingw.h:102:14: error: previous declaration of 'unsigned int sleep (unsigned int)' with 'C++' linkage unsigned int sleep (unsigned int seconds); ^ In file included from ../../include/Date.h:27:0, from ../../include/DateFormat.h:26, from ../../include/ServiceTask.h:28, from ../ServiceTask.cpp:23: c:\mingw\include\unistd.h:138:49: error: conflicts with new declaration with 'C' linkage unsigned _cdecl __MINGW_NOTHROW sleep( unsigned ); ^ make[1]: *_\* [../ServiceTask.lo] Error 1 make[1]: Leaving directory/c/temporary/mingw_more/ffead-cpp-master/src/autotoo ls' make: *** [all-recursive] Error 1

    opened by jwaterloo 3
  • Building 2.0, running  ./autogen.sh fails:  MOD_APACHEMOD does not appear in AM_CONDITIONAL

    Building 2.0, running ./autogen.sh fails: MOD_APACHEMOD does not appear in AM_CONDITIONAL

    According to the steps: https://github.com/sumeetchhetri/ffead-cpp/wiki/Hello-World running ./ffead_gen.sh generate Hello Wold , after ./autogen.sh fails with the following error

    libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. libtoolize: putting auxiliary files in '.'. libtoolize: copying file './ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'm4'. libtoolize: copying file 'm4/libtool.m4' libtoolize: copying file 'm4/ltoptions.m4' libtoolize: copying file 'm4/ltsugar.m4' libtoolize: copying file 'm4/ltversion.m4' libtoolize: copying file 'm4/lt~obsolete.m4' libtoolize: Consider adding '-I m4' to ACLOCAL_AMFLAGS in Makefile.am. configure.ac:11: installing './compile' configure.ac:5: installing './missing' Makefile.am:243: error: MOD_APACHEMOD does not appear in AM_CONDITIONAL Makefile.am:248: error: MOD_NGINXMOD does not appear in AM_CONDITIONAL configure.ac:903: error: required file 'src/apache_mod_ffeadcpp/autotools/Makefile.in' not found configure.ac:903: error: required file 'web/hello_world/src/autotools/Makefile.in' not found src/autotools/Makefile.am: installing './depcomp' autoreconf: automake failed with exit status: 1

    opened by lyp365859350 2
  • 2.0 and latest git fail with 'conditional

    2.0 and latest git fail with 'conditional "MOD_APACHEMOD" was never defined.'

    Using 2.0 or git, running ./configure after autogen.sh fails with the following error on Ubuntu 16.04.2 64 bit (up to date):

    [...]
    checking for dlopen in -ldl... (cached) yes
    checking for clock_nanosleep in -lrt... yes
    checking for clock_gettime in -lrt... yes
    checking that generated files are newer than configure... done
    configure: error: conditional "MOD_APACHEMOD" was never defined.
    Usually this means the macro was only invoked conditionally.
    

    Here is the output of gcc -v:

    Using built-in specs.
    COLLECT_GCC=gcc
    COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
    Target: x86_64-linux-gnu
    Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.4' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
    Thread model: posix
    gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
    

    And here is uname -a:

    Linux ubuntu 4.8.0-49-generic #52~16.04.1-Ubuntu SMP Thu Apr 20 10:55:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
    

    Let me know if you need more details.

    opened by Mister-X- 2
  • v2 libinter.so: cannot open shared object file

    v2 libinter.so: cannot open shared object file

    Hi,

    Got the latest release from github, followed the build setups i.e.

    Quickstart

    • ./autogen.sh (Setup configure for your platform)
    • ./configure (Setup makefiles)
    • Stretch a bit :-)
    • make all (Build ffead-cpp)
    • Sip some coffee
    • make build-apps (Build the sample applications in web + generate ffead-cpp binary)
    • cd ffead-cpp-2.0-bin/ (Navigate to the ffead-cpp binary folder)
    • ./server.sh (Startup ffead-cpp Njoy!!)

    but when the sever won't start up and the logs show the following errors:

    05/11/2015 16:10:41 :libinter.so05/11/2015 16:10:41 : 05/11/2015 16:10:41 :libinter.so: cannot open shared object file: No such file or directory05/11/2015 16:10:41 : 05/11/2015 16:10:41 :Could not load Library 05/11/2015 16:10:41 :Set up configure for intermediate libraries

    05/11/2015 16:10:41 : 05/11/2015 16:10:41 :Set up configure for intermediate libraries

    05/11/2015 16:10:41 : 05/11/2015 16:10:41 :Set up makefiles for intermediate libraries

    05/11/2015 16:10:41 : 05/11/2015 16:10:41 :/home/adrianph/development/ffead-cpp/ffead-cpp-2.0-bin//resources/rundyn-configure.sh: 32: /home/adrianph/development/ffead-cpp/ffead-cpp-2.0-bin//resources/rundyn-configure.sh: ./configure: not found 05/11/2015 16:10:41 : 05/11/2015 16:10:41 :Rerunning Intermediate code generation task

    05/11/2015 16:10:41 : 05/11/2015 16:10:41 :make: *** No rule to make target 'clean'. Stop. make: *** No rule to make target 'all'. Stop. cp: cannot stat ‘.libs/inter’: No such file or directory 05/11/2015 16:10:41 : 05/11/2015 16:10:41 :libinter.so: cannot open shared object file: No such file or directory05/11/2015 16:10:41 : 05/11/2015 16:10:41 :Could not load Library

    running ubuntu 15.10 any help is much appreciated.

    Thanks

    opened by gitdao 2
  • Bump tokio from 0.2.25 to 1.21.1 in /lang-server-backends/rust/actix-ffead-cpp

    Bump tokio from 0.2.25 to 1.21.1 in /lang-server-backends/rust/actix-ffead-cpp

    Bumps tokio from 0.2.25 to 1.21.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.21.1

    1.21.1 (September 13, 2022)

    Fixed

    • net: fix dependency resolution for socket2 (#5000)
    • task: ignore failure to set TLS in LocalSet Drop (#4976)

    #4976: tokio-rs/tokio#4976 #5000: tokio-rs/tokio#5000

    Tokio v1.21.0

    1.21.0 (September 2, 2022)

    This release is the first release of Tokio to intentionally support WASM. The sync,macros,io-util,rt,time features are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for the net feature.

    Added

    • net: add device and bind_device methods to TCP/UDP sockets (#4882)
    • net: add tos and set_tos methods to TCP and UDP sockets (#4877)
    • net: add security flags to named pipe ServerOptions (#4845)
    • signal: add more windows signal handlers (#4924)
    • sync: add mpsc::Sender::max_capacity method (#4904)
    • sync: implement Weak version of mpsc::Sender (#4595)
    • task: add LocalSet::enter (#4765)
    • task: stabilize JoinSet and AbortHandle (#4920)
    • tokio: add track_caller to public APIs (#4805, #4848, #4852)
    • wasm: initial support for wasm32-wasi target (#4716)

    Fixed

    • miri: improve miri compatibility by avoiding temporary references in linked_list::Link impls (#4841)
    • signal: don't register write interest on signal pipe (#4898)
    • sync: add #[must_use] to lock guards (#4886)
    • sync: fix hang when calling recv on closed and reopened broadcast channel (#4867)
    • task: propagate attributes on task-locals (#4837)

    Changed

    • fs: change panic to error in File::start_seek (#4897)
    • io: reduce syscalls in poll_read (#4840)
    • process: use blocking threadpool for child stdio I/O (#4824)
    • signal: make SignalKind methods const (#4956)

    Internal changes

    • rt: extract basic_scheduler::Config (#4935)
    • rt: move I/O driver into runtime module (#4942)
    • rt: rename internal scheduler types (#4945)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump regex from 1.5.4 to 1.5.6 in /lang-server-backends/rust/actix-ffead-cpp

    Bump regex from 1.5.4 to 1.5.6 in /lang-server-backends/rust/actix-ffead-cpp

    Bumps regex from 1.5.4 to 1.5.6.

    Changelog

    Sourced from regex's changelog.

    1.5.6 (2022-05-20)

    This release includes a few bug fixes, including a bug that produced incorrect matches when a non-greedy ? operator was used.

    1.5.5 (2022-03-08)

    This releases fixes a security bug in the regex compiler. This bug permits a vector for a denial-of-service attack in cases where the regex being compiled is untrusted. There are no known problems where the regex is itself trusted, including in cases of untrusted haystacks.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Bump regex from 1.5.4 to 1.5.6 in /lang-server-backends/rust/hyper-ffead-cpp

    Bump regex from 1.5.4 to 1.5.6 in /lang-server-backends/rust/hyper-ffead-cpp

    Bumps regex from 1.5.4 to 1.5.6.

    Changelog

    Sourced from regex's changelog.

    1.5.6 (2022-05-20)

    This release includes a few bug fixes, including a bug that produced incorrect matches when a non-greedy ? operator was used.

    1.5.5 (2022-03-08)

    This releases fixes a security bug in the regex compiler. This bug permits a vector for a denial-of-service attack in cases where the regex being compiled is untrusted. There are no known problems where the regex is itself trusted, including in cases of untrusted haystacks.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies rust 
    opened by dependabot[bot] 1
  • Conan package

    Conan package

    Hello, Do you know about Conan? Conan is modern dependency manager for C++. And will be great if your library will be available via package manager for other developers.

    Here you can find example, how you can create package for the library.

    If you have any questions, just ask :-)

    opened by zamazan4ik 0
Releases(v5.3)
Owner
Sumeet Chhetri
Sumeet Chhetri
Kigs framework is a C++ modular multipurpose cross platform framework.

Kigs framework is a C++ modular multi-purpose cross-platform framework. It was used as a basis for many professionnal projects. The main goal was to b

null 74 Nov 28, 2022
Basic Development Environment - a set of foundational C++ libraries used at Bloomberg.

BDE Libraries This repository contains the BDE libraries, currently BSL (Basic Standard Library), BDL (Basic Development Library), BAL (Basic Applicat

Bloomberg 1.4k Dec 29, 2022
An eventing framework for building high performance and high scalability systems in C.

NOTE: THIS PROJECT HAS BEEN DEPRECATED AND IS NO LONGER ACTIVELY MAINTAINED As of 2019-03-08, this project will no longer be maintained and will be ar

Facebook Archive 1.7k Dec 14, 2022
🔥 bhook(aka ByteHook) is a PLT hook framework for Android app.

?? bhook(aka ByteHook) is a PLT hook framework for Android app. Most of ByteDance's Android apps use bhook as the PLT hook solution online.

Bytedance Inc. 1.4k Jan 8, 2023
Idle is an asynchronous and hot-reloadable C++ dynamic component framework

Idle is an asynchronous, hot-reloadable, and highly reactive dynamic component framework similar to OSGI that is: ?? Modular: Your program logic is en

Denis Blank 173 Dec 7, 2022
PYNQ Framework for ANTSDR

PYNQ Framework for ANTSDR This project was inspired by PYNQ and PlutoSDR. There are already many SDR platforms based on ZYNQ and AD9361, so does ANTSD

null 21 Oct 20, 2022
PlenOctree Volume Rendering (supports CUDA & fragment shader backends)

PlenOctree Volume Rendering This is a real-time PlenOctree volume renderer written in C++ using OpenGL, constituting part of the code release for: Ple

Alex Yu 530 Jan 4, 2023
Built a peer-to-peer group based file sharing system where users could share or download files from the groups they belonged to. Supports parallel downloading with multiple file chunks from multiple peers.

Mini-Torrent Built a peer-to-peer group based file sharing system where users could share or download files from the groups they belonged to. Supports

null 1 Nov 15, 2021
OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.

What is OceanBase database OceanBase Database is a native distributed relational database. It is developed entirely by Alibaba and Ant Group. OceanBas

OceanBase 5.1k Jan 4, 2023
U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

Ultimate++ Ultimate++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of librar

Ultimate++ 564 Jan 8, 2023
Bsl - Rust 2018 and C++20, "constexpr everything", AUTOSAR compliant header-only library intended to support the development of critical systems applications

Description The Bareflank Support Library (BSL) is a Rust 2018 and C++20, "constexpr everything", AUTOSAR compliant header-only library intended to su

Bareflank 76 Dec 8, 2022
IDA Debugger Module to Dynamically Synchronize Memory and Registers with third-party Backends (Tenet, Unicorn, GDB, etc.)

IDA Debug Bridge IDA Debugger Module to Dynamically Synchronize Memory and Registers with third-party Backends (Tenet, Unicorn, GDB, etc.) By synchron

null 9 Sep 5, 2022
A cross platform connection manager for V2Ray and other backends.

Qv2ray - For developers. By developers. Qv2ray is a cross-platform connection manager for V2Ray and other backends. This is the original Qv2ray projec

Shadowsocks.NET 677 Jan 7, 2023
Simple, secure & standards compliant web server for the most demanding of applications

Simple, secure[1] & standards compliant[2] web server for the most demanding[3] of applications. Read more... ?? Optimized security Being meticulously

uNetworking AB 15k Dec 30, 2022
A hierarchical parameter server framework based on MXNet. GeoMX also implements multiple communication-efficient strategies.

Introduction GeoMX is a MXNet-based two-layer parameter server framework, aiming at integrating data knowledge that owned by multiple independent part

null 86 Oct 21, 2022
A hierarchical parameter server framework based on MXNet. GeoMX also implements multiple communication-efficient strategies.

Introduction GeoMX is a MXNet-based two-layer parameter server framework, aiming at integrating data knowledge that owned by multiple independent part

null 86 Oct 21, 2022
Allows for multiple SwitchBot buttons and curtains to be controlled via MQTT sent to ESP32. ESP32 will send BLE commands to switchbots and return MQTT responses to the broker. Also supports Meter/Temp Sensor

SwitchBot-MQTT-BLE-ESP32 Switchbot local control using ESP32. no switchbot hub used/required. works with any smarthub that supports MQTT https://githu

null 343 Dec 27, 2022
Improved and configurable drop-in replacement to std::function that supports move only types, multiple overloads and more

fu2::function an improved drop-in replacement to std::function Provides improved implementations of std::function: copyable fu2::function move-only fu

Denis Blank 429 Dec 12, 2022