|
1 | 1 | <!--  --> |
2 | 2 | # LiteHttp  |
3 | 3 |
|
4 | | -- Lightweight and dependency-free |
5 | | -- Built with System.* only |
6 | | -- Simple route mapping (MapGet, MapPost, etc.) |
7 | | -- ActionResultFactory for clean and zero alloc response handling |
8 | | -- Simply configurable host and port |
| 4 | +## Project Status: Archived ⚠️ |
| 5 | + |
| 6 | +This project is no longer in active development. It was built as a learning exercise to understand low-level networking, async I/O, and high-performance server architecture in C#. |
| 7 | + |
| 8 | +**What was achieved:** |
| 9 | + |
| 10 | +- Custom HTTP/1.1 server implementation without using `System.Net.Http` |
| 11 | +- 28,000+ requests per second on commodity hardware |
| 12 | +- Building concurrent lock-free systems using `ThreadPool`, concurrent collections and `Interlocked` |
| 13 | +- Efficient parsing and response building using `Span<T>` and `Memory<T>` to minimize allocations |
| 14 | +- Applying YAGNI principle: writing only code I needed, when I needed it |
| 15 | +- Open-source development practices: MIT license, contribution guidelines, XML code documentation |
| 16 | + |
| 17 | +**Why archived:** |
| 18 | +I'm shifting focus to production-ready backend development (SQL, EF Core, REST APIs, microservices). This project taught me invaluable lessons about systems programming, but it's time to apply those skills to real-world backend work. |
| 19 | + |
| 20 | +The code remains here as a reference and portfolio piece. I may return to add System.IO.Pipelines and HTTP keep-alive support in the future, but for now, it's feature-complete for its original learning goals. |
| 21 | + |
| 22 | +**Key learnings:** |
| 23 | +- How HTTP servers actually work under the hood |
| 24 | +- Performance optimization and profiling techniques |
| 25 | +- Lock-free concurrent data structures |
| 26 | +- The value of knowing when NOT to over-optimize |
| 27 | + |
| 28 | +Feel free to explore the code or reach out if you have questions! |
9 | 29 |
|
10 | 30 | # Getting Started |
11 | 31 |
|
@@ -100,8 +120,6 @@ The `WithAddress` method also has overload `ServerBuilder WithAddress(string add |
100 | 120 |
|
101 | 121 | ### Maximum reached short-term rps: **28500** |
102 | 122 |
|
103 | | -**Note:** the tests was provided with single worker thread, using multiple working thread on current version can decrease rps by 3-5% |
104 | | - |
105 | 123 | *Test was provided via **k6** on Machine with next configuration:* |
106 | 124 |
|
107 | 125 | > - CPU: Ryzen r7 5800X |
|
0 commit comments