Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork0
Lightweight and fast HTTP/1.1, HTTP/1.2 (XML) Protocol with HTTP/2 flavour
License
WEBcodeX1/http-1.2
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Lightning-Fast, Next-Level Python / Java Application Server with HTTP/1.2 Protocol
HTTP/1.2 is a revolutionary approach to web protocols, designed as a simpler, more secure,and significantly faster alternative to HTTP/2 and probably HTTP/3.
We are buildingHTTP/1.2 - a much more lightweight solution.
- ✅Kernel Mutex-Less: Built with on-chip atomic user space locks
- ✅Lightning-Fast Performance: Optimized for modern hardware with epoll-based architecture
- ✅Threaded Static File Delivery: Threading and in-kernel sendfile() increase scheduling latency
- ✅Rock-Solid App-Server Security: Runs with tight backend process-separation model (non-threaded)
- ✅SPA Realtime Demands: Built for modern browser applications (SPAs) real-time demands
- ✅Zero Bloat: Eliminates unnecessary complexity while maintaining compatibility
- ✅Python-Powered: FalconAS application server with embedded Python scripting
- ✅Java-Powered: FalconAS application server with embedded Java scripting
- Quick Start
- Features
- Why HTTP/1.2?
- Build & Installation
- Testing
- Technical Architecture
- Documentation
- Community & Support
- Contributing
- Future Milestones
- License
Get HTTP/1.2 FalconAS running in minutes:
# clone repositorygit clone https://github.com/WEBcodeX1/http-1.2.gitcd http-1.2# install dependencies (Ubuntu 22.04/Debian 12)apt-get install git cmake python3-pip libboost-all-dev python3-dev nlohmann-json3-dev# build and installcmake.makesudo make install# start using systemd (automatically configured during install)sudo systemctl daemon-reloadsudo systemctlenable falcon-assudo systemctl start falcon-as# OR start manually. ./scripts/ulimit.sh. ./scripts/set-transparent-hugepages.sh/usr/local/bin/falcon-as
The server will be available with test applications at:
http://testapp1.local/http://testapp2.local/
For detailed installation instructions, seeBUILD.md.
- 🚀 Lightning-Fast: Epoll-based architecture for maximum performance
- 🔒 Secure by Design: Interpreters run non-threaded / unix process isolated
- ⚡ Zero Bloat: Eliminates HTTP/2's excessive complexity
- 🎯 SPA-Optimized: Perfect for modern Single Page Applications real time demands
- 🐍 Python-Powered: Embedded Python interpreter / scripting integration
- ☕ Java-Powered: Embedded Java JNI / scripting integration
- Fixed HTTP/1.1 Pipelining: Resolves misordered request/reply pairs with UUID headers
- Permanent Keep-Alive: Single socket per client for optimal TCP/IP utilization
- Request UUID System: Eliminates response ordering requirements
- Simplified Architecture: Text-based protocol maintaining HTTP/1.1 simplicity
- Static Content Server: High-performance file serving with sendfile()
- Application Server: Python scripting with shared memory architecture
- Memory Management: Huge pages support and optimized memory layout
- Process Architecture: Separate processes to avoid Python GIL limitations
- JSON Configuration: Clean, maintainable configuration system
- JSON Powered By:nlohmann/json C++ JSON library
HTTP/2 Complexity Crisis:
- Excessive complexity destroys HTTP/1.1's elegant simplicity
- Everything packed into one "black box" without logical separation
- Libraries are confusing and difficult to understand
- TLS/SSL handling unnecessarily embedded in protocol
HTTP/3 UDP Issues:
- Works only for precalculated CDN data
- Creates new complexity without solving core issues
HTTP/1.2fixes HTTP/1.1's single major flaw (broken pipelining) whileavoiding HTTP/2's complexity:
🎯 Key Innovation: Adding a simple
Request-UUIDheader eliminates response ordering issues, making HTTP/2's complex Layer-7 multiplexing unnecessary.
Operating System Support:
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 24.04 (Noble Numbat)
- Debian 12
Required Dependencies:
# core build toolsapt-get install git cmake# c++ boost librariesapt-get install libboost-all-dev# python development headersapt-get install python3-dev# c++ json libraryapt-get install nlohmann-json3-dev
Standard Build:
cmake.makemake installDebug Build:
cmake -DDEBUG_BUILD=1.makemake installJava Backend Build:
export JAVA_HOME=/usr/lib/jvm/jdk-24.0.2-oracle-x64/cmake -DJAVA_BACKEND=1.makemake install
For complete build instructions, seeBUILD.md.
Comprehensive testing infrastructure ensures reliability:
- Unit Tests: Core component validation (
/test/unit/) - Integration Tests: End-to-end functionality (
/test/integration/) - Performance Tests: Benchmarking and optimization (
/test/performance/) - Evaluation Tests: Protocol compliance (
/test/eval/)
Seetest documentation for detailed testing procedures.
+----------------+---------------+---------------+----------------+| Server Process | AS Process 1 | AS Process x | Result Process || | Python Interp.| Python Interp.| |+-----------------------------------------------------------------+| Shared Memory || - StaticFS Requests || - AS Metadata || - AS Requests || - AS Results |+-----------------------------------------------------------------+Design Principles:
- Process-Based: Separate processes avoid Python GIL limitations
- Shared Memory: High-performance IPC with atomic locks (kernel mutex-less)
- Huge Pages: Memory optimization for better performance
The Problem with incorrectly implemented Coroutines:
- In case a single connection awaits a syscall
read()result - Its similar to one
poll()for a single connection file descriptor - 10,000 connections = 10,000 syscalls (context switches)
- Massive overhead for checking received data (unscalable)
Our Epoll Advantage:
- Single syscall informs about multiple FDs with pending data
- Used by nginx and other high-performance servers
- Build Instructions:BUILD.md
- Testing Guide:test/README.md
- Technical Specifications:specs/md/README.md
- Feature Comparison:FEATURE-MATRIX.md
- Sphinx Rendered:Detailed Sphinx
- Doxygen Rendered:Doxygen - UML relations
- CI Documentation:/doc/README.md
- RFP/RFC Specs:http://docs.webcodex.de/wacp/rfp/
- Detailed Analysis:Der IT Prüfer
- WAP/XML Specs:WAP-AS-XML-SPECS.md
- Internal Libraries:lib/README.md
- Issues:GitHub Issues - Bug reports and feature requests
- Email:http1-2@webcodex.de - Questions and improvement ideas
- Security:SECURITY.md - Security vulnerability reporting
- Documentation:Official Docs
- RFC Updates:Der IT Prüfer - Detailed protocol analysis
We welcome contributions! Whether you're:
- 🐛Reporting bugs
- 💡Suggesting features
- 📝Improving documentation
- 🔧Submitting code
Please seeCONTRIBUTING.md for guidelines.
Code Quality Standards:
- Clean, readable, maintainable code
- Comprehensive testing
- Security-conscious development
- Commit signing with GPG/SSH keys
- HTTP/1.1 Compatibility: Minimal SPA related features
- x0 Framework Integration: Seamless SPA framework compatibility
- HTTP/1.2 Protocol: Implementation including client library
- Performance Benchmarks: Comprehensive HTTP/1.1, HTTP/2, HTTP/3 comparisons
- Protocol Standardization: Submit HTTP/1.2 as official RFC
- Enterprise Features: Advanced monitoring, analytics, management
- Proxy Server Component: Complete the load balancing/reverse proxy module
SeeGitHub Milestones for detailed roadmap.
GNU Affero General Public License v3.0 - SeeLICENSE for details.
🚀 Ready to experience the future of web protocols?
Made with ❤️ by Claus Prüfer / clickIT / WEBcodeX
About
Lightweight and fast HTTP/1.1, HTTP/1.2 (XML) Protocol with HTTP/2 flavour
Topics
Resources
License
Code of conduct
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.