Warning
This project is in developement. Don't use it in production
An XML-configurable HTTP server in C++ with a focus on simplicity and customization.
Explore the docs »
View Demo · Report Bug · Request Feature
Table of Contents
Valkyria is a prototype web framework written in C++ that allows you to configure routes and settings using XML. The server is designed with simplicity and ease of customization in mind. You can define routes, ports, root paths, and more without even touching code.
- C++
- C++ Compiler
- Git
You can download the latest version of the executable from the Releases page. Select the most recent version and download the corresponding executable file for your operating system (e.g., Windows, macOS, or Linux).
-
Clone the repo
git clone https://github.com/valkyria-dev/valkyria.git cd valkyria
-
Build the server
g++ -pthread main.cpp -o server
-
Run the server
./server
Valkyria is configured using XML. Below is an example XML configuration (config.xml
):
<config>
<port>80</port>
<routes>
<route path="/" content="<h1>Welcome to the homepage</h1>" />
<route path="/about" content="<h1>About Us</h1>" />
</routes>
</config>
This example configures the server to listen on port 80 and define two routes ("/" and "/about").
To run the server with this configuration:
./server
- XML-based configuration
- Basic routing functionality
- SSL/TLS support
- Improved error handling
- Support for additional HTTP methods
- Multi-threading support
See the open issues for a full list of proposed features and enhancements.
Contributions are welcome! If you have suggestions, bug reports, or want to contribute code, please follow these steps:
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add an AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Valkyria Team - valkyria@example.com
Project Link: https://github.com/valkyria-dev/valkyria
Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!