Welcome to the Plain project!
Plain is an educational project to learn more about how webbrowsers work. Everyone has used webbrowsers, yet only a small number of people really know how they work.
Multiple decades worth of research have gone into the likes of Google Chrome, Mozilla FireFox, or Microsoft Edge. Plain will realistically never even come close to the commercial webbrowsers.
However, you will be able to navigate the web using Plain!
Writing a webbrowser from scratch is a lot of work. To avoid spending a lot of time writing literally everything from scratch, Plain depends on a few third-party libraries and SDKs:
- Vulkan: Next-generation API for 3D graphics and computing (could be seen as a "successor" to OpenGL).
- Spdlog (MIT): Very fast, header-only/compiled, C++ logging library.
- GLM (MIT): Header only C++ mathematics library.
- GLFW (Zlib): A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
This project would not have been possible without the help of these awesome libraries. ♥
- After a busy period at work, I finally found some time again to pick up this project.
- Put together Vulkan boilerplate code to render a triangle to the screen.
- Added queue family discovery.
- Added logical device creation.
- Added physical device (GPU) selection.
- Added Vulkan instance creation.
- Added Vulkan extension and validation layer configuration.
- Implemented very basic HTTP/1.1 protocol.
- Added logging to make it easier to debug the application.
- Managed to receive a valid response from a website.
- Created TCP socket abstraction layer for WinSock.
- Started working on Plain.