Skip to content
Sumeet Chhetri edited this page Dec 7, 2020 · 10 revisions

The ffead-cpp Framework

ffead-cpp is a web-framework, application framework, utilities all bundled into one. It also provides and embedded HTTP/HTT2/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.

History

ffead-cpp was born due to the lack of options available in C++ for web-programming like they were already available for Java (Spring), Python(Django), PHP(CakePHP) and Ruby(ROR). The idea of creating a framework for developing web-applications in C++ came to my mind in the year 2008 and that is when I started working on the concept. I knew very very little C++ back then and I was just learning the basics of it then, but my goal of creating a framework made me read and learn a lot about C++ gradually. It took me almost a year and a half to make my code public on google-code which was when around October 2010 I released the source code for ffead-cpp for the first time.

I came up with the first release of ffead-cpp in Nov 2010 and have never looked back since then. I have truly come a long way since when I started with this journey, have been embarrassed on multiple occasions due to the lack of knowledge of the C++ ecosystem through the years, also due to the quality of code when I first started as a novice. But what I did not stop was my tryst with this beautiful language and what it taught me over the years.

There were two important decisions I had to take with ffead-cpp in terms of its design, one was the switch to the powerful autotools build system and the second one was the modularization of the components within the framework run-time which now make ffead-cpp a really powerful application development framework.

This is my small gift to all those people out there who love C++ and also those who love programming for the web.