Skip to content

alviroiskandar/aishttpd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

aishttpd
--------

Date: Tue, 30 Dec 2025 17:35:51 +0700
From: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Subject: Update on the aishttpd Project

Hello,

This is the aishttpd project. The naming "AIS" comes from my initials,
Alviro Iskandar Setiawan. aishttpd is a simple HTTP server written in C.
I started this project on Sunday, December 21, 2025. The main goal of
this project is to warm up my socket programming skills.

Check README_2025_12_22 file for the previous introduction email. Since
then, this project has made some significant progress. Now we have:

    - Basic HTTP request parsing using gwnet_http1 parser from Ammar Faizi.
      Link: #1

    - File serving support for static files (from me).

    - C++ framework support (from me).

I'll host my website using aishttpd soon. The plan is to use aishttpd
to serve static files for my personal website. This will be a good test
case for aishttpd in a real-world scenario.

BTW, I have tested aishttpd with various stress tests. Last time,
aishttpd can handle 40K concurrent connections using ab (ApacheBench)
tool. Note that I ran two instances of 'ab' as each 'ab' instance can
only open up to 20K connections.

Currently, this project has almost no dependencies. It only depends on
the standard C library and Linux syscalls. If you want to try it out,
you can do the following:

    git clone https://gitlab.com/alviroiskandar/aishttpd;
    cd aishttpd;
    make -j$(nproc);
    ulimit -n 100000; # Optional: Increase RLIMIT_NOFILE for more concurrent connections.
    ./aishttpd;

Then you can open your web browser and navigate to:

    http://localhost:9980

Or just use curl. If you want to stress test aishttpd, you can use the
'ab' tool as follows:

    ulimit -n 100000; # Increase RLIMIT_NOFILE for more concurrent connections.
    ab -n 100000 -c 20000 http://127.0.0.1:9980/

I am looking forward to feedback, suggestions, and contributions.

Thank you!
Best regards,
-- 
Software Engineer & ITPM Officer
Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
+1 908 777 0074

About

HTTP server

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors