GitHub - OUIsolutions/CWebStudio: An Modern Reactive C Web Server

GitHub

CWebStudio Logo
GitHub Release
License

CWebStudio is a powerful and lightweight framework for building web applications in C/C++. Designed for efficiency and simplicity, it provides a single-file library to streamline common web development tasks. With CWebStudio, you can effortlessly handle HTTP requests, parse JSON, manage static files, and create dynamic front-end code using the innovative HyDration mechanic. Whether you're developing a simple API or a complex web application, CWebStudio equips you with the tools to build fast and reliable solutions.

———
🚀 Features

Lightweight & Efficient: A minimal footprint with maximum performance.

Single-File Library: Easy to integrate with your projects.

HTTP Request Handling: Simplified management of routes, headers, and query parameters.

JSON Parsing: Built-in support for handling JSON data with ease.

Static File Management: Serve static files with smart caching.

HyDration Mechanic: Generate dynamic front-end code directly from C.

Cross-Platform: Compatible with multiple environments for C/C++ development.

———
📦 Releases

ItemDescription

CWebStudioOne.c

CWebStudio One file (All-in-one solution)

CWebStudio.h

Header File

CWebStudio.zip

Full Folder (Includes src/one.c)
———
💻 Quick Start: Simple Example

Here's a minimal example to get you started with CWebStudio. This code sets up a basic server that responds with "Hello World".

#include"CWebStudioOne.c"CwebHttpResponse*main_server(CwebHttpRequest*request) { returncweb_send_text("Hello World", 200); } intmain(intargc, char*argv[]) { CwebServerserver=newCwebSever(5000, main_server); CwebServer_start(&server); return0; }
———
📚 Documentation

Explore the comprehensive documentation to learn more about CWebStudio's capabilities:

TopicDescription

Build & Install

How to build and install CWebStudio

Routing & URL Parameters

Working with URL parameters

Query Parameters

Retrieving query parameters

Iterating Query Params

Iterating through query parameters

URL Encoding

Parsing URL-encoded parameters

Headers

Retrieving request headers

Iterating Headers

Iterating through headers

Request Body

Reading body content from requests

JSON Parsing

Parsing JSON data from requests

Returning JSON

Returning JSON using cJSON

Binary Content

Reading binary content from requests

Plain Text Responses

Returning plain text responses

Rendered HTML

Returning HTML using CTextStack

HTML Responses

Returning raw HTML responses

Serving Files

Returning files directly from the server

Other Formats

Returning content in various formats

Static Files

Handling static files with smart caching

Debugging

Enabling debug mode with CWEB_DEBUG

Server Control

Killing the server process

Server Configuration

Configuring server parameters

HyDration Intro

Introduction to HyDration for front-end code

HyDration Steps

Explaining the three steps of HyDration

HyDration Example

Full runnable HyDration example

HyDration Search

Retrieving search results from the browser

HyDration Requirements

Setting up search requirements for bridges

HyDration Actions

Executing actions in the browser

HyDration Shortcuts

Using shortcuts in HyDration

HyDration Arguments

Passing arguments between bridges

HyDration Numbers

Handling numbers in HyDration

Dependencies

Required dependencies for CWebStudio
———
🤝 Contributing

We welcome contributions to CWebStudio! If you'd like to contribute, please fork the repository, make your changes, and submit a pull request. For major changes, please open an issue first to discuss your ideas.

———
📜 License

CWebStudio is licensed under the MIT License. See the

LICENSE

file for more details.

———
🌟 Why CWebStudio?

CWebStudio brings the power of C/C++ to web development, combining performance with simplicity. Whether you're building embedded web servers or high-performance APIs, CWebStudio is the ideal choice for developers who value efficiency and control.

———

CWebStudio Banner