Web++: A C++ Web Framework
131 subscribers
440 photos
36 videos
20 files
177 links
Web++ Framework (A C++ web framework to ease the pain of web development)

Using modern C++20/23.
GitHub: https://github.com/the-moisrex/webpp

I've been working on this project since 2019...
Download Telegram
I don't like to code for others; because those whom I worked for so far, didn't get how much time and effort I put into the code. They never understood how much it worth. That's why I stopped working for others, and now, I'm coding the foundation of my own dreams. The one single building block that will hold almost all of my ideas together; a framework in a language that can glue everything I'll write together.
I have so many ideas, but if I spend coding one of them, it'll take so much out of me because those ideas need updates; and other frameworks gets updated frequently. At least now, when I update my framework, I know I'll get all the cool things I want for all of those ideas all together.
I'm designing it in a way that I don't have to do it again for another project. I just have to re-use it.
.
.
Oh bwt, the blue light on the picture is natural, guess how I did it?! 😊
.
.
#coding #code #programming #idea #development #developer #dev #tech #technology #techie #cpp #web #webdev #devlife #techlife #job
https://www.instagram.com/p/B9KeI6EAFZ8/?igshid=8lzj57keiocy
I'm learning these days if you wonder; implemented an async daytime porotocol with help of Boost.Asio library.
It sure will help to implement the FCGI protocol in the project.
It might even be the base of the Self-Hosted interface too; but before implementing that, I have to make sure I understand HTTP 2.0 before implementing something that would require even more change when I felt the need for implementing HTTP 2.0 protocol.

But of course, you sure can use FCGI and CGI protocol to have Nginx or apache do the hard work of doing all the HTTP 2.0 protocol stuff.
Let's implement this.
I'm gonna implement the caches afterwards. But I'll design the whole caching system somehow that the user can use the Poco's cache libraries too. All it takes is a wrapper for them to match them up with my implementation.
I had a very discussion with one of my friends years ago about if human decisions were binary or not.
If you break down every decision into smaller decisions, then you'll get to a point that a decision in that situation is good and the other one is bad; so we decided at last.
But the problem is that we are not able to decide things in binary; we decide thousands of decisions at once. We set goals; hopefully those goals have logical reasons.
For example, when I decided to make this framework, I also chose to thousands of other smaller decisions at once. And that's not the end; now I have to make millions of more decisions when they come along the way; for example when to code, which algorithms to choose and many more decisions.
But the good thing now is that these decisions are easier to make because they have a more clear goal.
I see young people with no goals. (Making money is not a goal, it's a tool. Contact me for more info about why!)
Goals require decisions, decisions require decisions until they become so clear and small that you can (probably physically) do it just now.
So a decision is not just a decision, it's the combination of millions of decisions that you have to make in the future.
So choose carefully, and choose something that worth it. More than 95 percents of you don't have a goal, or even if you do, it's not worth it, and even if you have, you probably don't know why it worth it. Knowing the reason is even more important than achieving the goal.
Testing and benchmarking performance in C++ is like testing your javascript code in different browsers except you don't have different browsers, you have different hardware and different operating systems and different implementations of different algorithms and libraries.
So many things to consider!

t.me/webpp
Implementing the FastCGI interface with the help of boost; but I'll make sure to not share this information that I'm using boost because in a few years, boost::asio will be in the STL; so it's wise to make sure I code this somehow that it won't be necessary to change much after C++23 comes out.
I know there is a FCGI RFC documentation at https://web.archive.org/web/20160119141816/http://www.fastcgi.com/drupal/node/6?q=node%2F22 , but I can't stop myself from reading implementation codes before reading the RFC!
CGI communication protocol.
That's a semi-nice way of sending and receiving HTTP in FastCGI protocol.
But I think we still could've done better.
Endianness maters!
Linux Kernel is so cool.
I will be learning as much as Linux interfaces that I can.
So much power, So much!
Now, the shared library itself can be executed.
So cool, isn't it?

I'm thinking about putting the whole SDK inside this library but that'll make the shared library too heavy.

Tell me what to write in there.
GTASK
I made this script on top of TaskWarrior in order to manage tasks and as a good enough todo list.

Source Code on: Github / GitLab