@@ -20,9 +20,9 @@ pip install httpmorph
2020
2121### Requirements
2222
23- - Python 3.7 +
24- - macOS or Linux (Windows support in progress)
25- - OpenSSL/ BoringSSL
23+ - Python 3.8 +
24+ - Windows, macOS, or Linux
25+ - BoringSSL (built automatically from source)
2626- libnghttp2 (for HTTP/2)
2727
2828## Quick Start
@@ -142,17 +142,17 @@ httpmorph aims for high compatibility with Python's `requests` library:
142142
143143| Feature | Status |
144144| ---------| --------|
145- | GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS | Supported |
146- | JSON request/response | Supported |
147- | Form data & file uploads | Supported |
148- | Custom headers | Supported |
149- | Authentication | Supported |
150- | Cookies & sessions | Supported |
151- | Redirects with history | Supported |
152- | Timeout control | Supported |
153- | SSL verification | Supported |
154- | Streaming responses | Supported |
155- | Exception hierarchy | Supported |
145+ | GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS | Supported |
146+ | JSON request/response | Supported |
147+ | Form data & file uploads | Supported |
148+ | Custom headers | Supported |
149+ | Authentication | Supported |
150+ | Cookies & sessions | Supported |
151+ | Redirects with history | Supported |
152+ | Timeout control | Supported |
153+ | SSL verification | Supported |
154+ | Streaming responses | Supported |
155+ | Exception hierarchy | Supported |
156156
157157## Response Object
158158
@@ -218,54 +218,85 @@ Benchmarks show httpmorph matching or exceeding the performance of curl and othe
218218
219219| Platform | Status |
220220| ----------| --------|
221- | macOS (Intel & Apple Silicon) | Fully supported |
222- | Linux (x86_64, ARM64 ) | Fully supported |
223- | Windows | In progress |
221+ | Windows | ✅ Fully supported |
222+ | macOS (Intel & Apple Silicon ) | ✅ Fully supported |
223+ | Linux (x86_64, ARM64) | ✅ Fully supported |
224224
225- Windows support is actively being developed. Follow the [ GitHub issues ] ( https://github.com/anthropics/httpmorph/issues ) for updates .
225+ All platforms use ** BoringSSL ** (Google's fork of OpenSSL ) for consistent TLS behavior and advanced fingerprinting capabilities .
226226
227227## Building from Source
228228
229- ### macOS
229+ httpmorph uses ** BoringSSL ** (built from source) on all platforms for consistent TLS fingerprinting.
230230
231+ ### Prerequisites
232+
233+ ** Windows:**
234+ ``` bash
235+ # Install build tools
236+ choco install cmake golang nasm visualstudio2022buildtools -y
237+
238+ # Or install manually:
239+ # - Visual Studio 2019+ (with C++ tools)
240+ # - CMake 3.15+
241+ # - Go 1.18+
242+ # - NASM (for BoringSSL assembly optimizations)
243+ ```
244+
245+ ** macOS:**
231246``` bash
232247# Install dependencies
233- brew install openssl@3 libnghttp2
248+ brew install cmake ninja libnghttp2
249+ ```
234250
235- # Build and install
236- python setup.py build_ext --inplace
237- pip install -e .
251+ ** Linux:**
252+ ``` bash
253+ # Ubuntu/Debian
254+ sudo apt-get install cmake ninja-build libssl-dev pkg-config autoconf automake libtool
255+
256+ # Fedora/RHEL
257+ sudo dnf install cmake ninja-build openssl-devel pkg-config autoconf automake libtool
238258```
239259
240- ### Linux
260+ ### Build Steps
241261
242262``` bash
243- # Install dependencies (Ubuntu/Debian)
244- sudo apt-get install libssl-dev libnghttp2-dev
263+ # 1. Clone the repository
264+ git clone https://github.com/yourusername/httpmorph.git
265+ cd httpmorph
245266
246- # Or (Fedora/RHEL )
247- sudo dnf install openssl-devel libnghttp2-devel
267+ # 2. Build vendor dependencies (BoringSSL, nghttp2, zlib )
268+ ./scripts/setup_vendors.sh # On Windows: bash scripts/setup_vendors.sh
248269
249- # Build and install
270+ # 3. Build Python extensions
250271python setup.py build_ext --inplace
251- pip install -e .
272+
273+ # 4. Install in development mode
274+ pip install -e " .[dev]"
252275```
253276
277+ ** Note:** The first build takes 5-10 minutes as it compiles BoringSSL from source. Subsequent builds are much faster (~ 30 seconds) as the vendor libraries are cached.
278+
254279## Development
255280
256281``` bash
257- # Clone repository
282+ # Clone and setup (includes building BoringSSL)
258283git clone https://github.com/yourusername/httpmorph.git
259284cd httpmorph
285+ ./scripts/setup_vendors.sh
260286
261287# Install development dependencies
262288pip install -e " .[dev]"
263289
264290# Run tests
265- pytest tests/
291+ pytest tests/ -v
266292
267293# Run with coverage
268294pytest tests/ --cov=httpmorph --cov-report=html
295+
296+ # Run specific test markers
297+ pytest tests/ -m " not slow" # Skip slow tests
298+ pytest tests/ -m integration # Only integration tests
299+ pytest tests/ -m fingerprint # Only fingerprinting tests
269300```
270301
271302## Architecture
@@ -310,10 +341,6 @@ Run the test suite:
310341pytest tests/ -v
311342```
312343
313- ## License
314-
315- [ License information to be added]
316-
317344## Acknowledgments
318345
319346- Built on BoringSSL (Google)
0 commit comments