Skip to content

Commit 1d9268c

Browse files
committed
docs: make the public documentation minimal
Signed-off-by: faratech <35661811+faratech@users.noreply.github.com>
1 parent ca58624 commit 1d9268c

8 files changed

Lines changed: 69 additions & 417 deletions

File tree

ARCHITECTURE.md

Lines changed: 0 additions & 119 deletions
This file was deleted.

CONTRIBUTING.md

Lines changed: 7 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,59 +1,20 @@
1-
# Contributing to httpjet
1+
# Contributing
22

3-
Thank you for helping improve httpjet. Bug reports, documentation fixes,
4-
tests, and focused code changes are welcome.
5-
6-
## Before opening a change
7-
8-
- Search existing issues and pull requests.
9-
- Keep changes narrowly scoped. Security-sensitive behavior, protocol
10-
compatibility, and cache correctness need regression tests.
11-
- Do not include credentials, production data, private configuration,
12-
customer content, or generated artifacts derived from them.
13-
- Discuss large architectural changes in an issue before investing in an
14-
implementation.
15-
16-
## Development checks
17-
18-
httpjet currently targets Linux and Rust 1.97 or newer.
3+
Keep changes focused, add regression tests, and never include secrets,
4+
production data, or private configuration.
195

206
```bash
217
cargo fmt --all --check
228
cargo check -p httpjet --bin httpjet
23-
cargo check -p httpjet --bin httpjet --features profiling
249
cargo test --workspace
2510
```
2611

27-
Tests marked `ignored` can depend on local software or configuration. Do not
28-
run them against a production installation.
29-
30-
## Developer Certificate of Origin
31-
32-
Contributions use the [Developer Certificate of Origin](DCO), not a
33-
copyright-assignment or commercial-relicensing CLA. Sign every commit:
12+
Sign every commit under the [Developer Certificate of Origin](DCO):
3413

3514
```bash
3615
git commit -s
3716
```
3817

39-
The sign-off certifies the statements in [DCO](DCO). It must use a name and
40-
email address you are authorized to submit publicly. Pull requests with
41-
unsigned commits will be asked to add sign-offs.
42-
43-
Contributions are licensed under `GPL-3.0-only`. FaraTech does not receive a
44-
special right to relicense community contributions under proprietary terms.
45-
46-
## AI-assisted contributions
47-
48-
You remain responsible for every line you submit. Disclose material use of a
49-
generative tool in the pull request, review the output, and confirm that you
50-
have the right to contribute it. Never send private repository content,
51-
credentials, production data, or third-party confidential material to a tool
52-
that is not approved to receive it.
53-
54-
## Pull requests
55-
56-
Explain the problem, the intended behavior, operational impact, and checks
57-
run. Avoid drive-by formatting or dependency changes unrelated to the fix.
58-
Preserve third-party license notices and add provenance for newly vendored
59-
code.
18+
Contributions are GPL-3.0-only; there is no proprietary-relicensing CLA.
19+
Disclose material AI assistance in the pull request and remain responsible for
20+
the submitted code and its provenance.

README.md

Lines changed: 21 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +1,45 @@
11
# httpjet
22

3-
httpjet is an experimental, high-performance Rust web server for Linux. It is
4-
designed as a drop-in replacement for the parts of LiteSpeed Web Server used by
5-
an existing deployment: it reads the same XML configuration, speaks LSAPI to
6-
`lsphp`, and implements HTTP/1.1, HTTP/2, HTTP/3, TLS, rewrite rules, reverse
7-
proxying, static files, and an opt-in origin page cache.
3+
httpjet is an experimental Linux web server written in Rust. It reads
4+
LiteSpeed-compatible XML, speaks LSAPI to `lsphp`, and supports H1/H2/H3, TLS,
5+
static files, proxying, rewrites, compression, and an opt-in page cache.
86

9-
> **Status: 0.1.0, early-stage.** FaraTech runs httpjet in production, but the
10-
> project has been developed against a specific configuration and is not a
11-
> claim of complete LiteSpeed compatibility. Stage it on alternate ports,
12-
> review the security model, and test every required directive before a
13-
> cutover.
7+
It is early-stage software built around one production configuration. Test on
8+
alternate ports before using it elsewhere.
149

15-
httpjet is completely open source under
16-
[GPL-3.0-only](LICENSE). There is no paid edition, license key, or
17-
sponsor-only feature set. Sponsorship supports maintenance but does not change
18-
the software license or feature access.
10+
## Build and try it
1911

20-
## Current scope
21-
22-
- **LiteSpeed XML compatibility** — reads `conf/httpd_config.xml`,
23-
`conf/vhosts/*.xml`, `mime.properties`, and supported `.htaccess` directives.
24-
- **Linux io_uring transport** — per-core monoio runtimes serve H1, native
25-
H2/h2c, TLS H1/H2, and quinn-proto-backed H3.
26-
- **Native LSAPI** — LSAPI codec, owned `lsphp` supervision, and an optional
27-
independently supervised external pool.
28-
- **TLS with rustls** — SNI certificates and optional client-certificate
29-
verification from the imported listener configuration.
30-
- **Static, proxy, rewrite, and compression** — ranges and conditionals,
31-
HTTP/WebSocket/SSE proxying, Apache-style rewrite rules, gzip, Brotli, and
32-
zstd.
33-
- **Origin page cache** — opt-in, sharded cache with private variants,
34-
stale handling, tag purge, optional tmpfs persistence, and dictionary
35-
compression.
36-
37-
The current release does **not** have a native TOML configuration format or
38-
automatic configuration migration command. `--root` always names a
39-
LiteSpeed-compatible configuration tree.
40-
41-
## Requirements
42-
43-
- Linux with io_uring support
44-
- Rust 1.97 or newer
45-
- A LiteSpeed-compatible XML configuration tree
46-
- Optional: an LSAPI-compatible `lsphp` binary for PHP sites
47-
48-
The workspace crates are source components of the application and currently
49-
set `publish = false`; they are not published independently to crates.io.
50-
51-
## Build
12+
Requires Linux with io_uring and Rust 1.97+.
5213

5314
```bash
5415
git clone https://github.com/faratech/httpjet.git
5516
cd httpjet
5617
cargo build --release -p httpjet
57-
```
58-
59-
The binary is `target/release/httpjet`.
60-
61-
## Try the static example
62-
63-
The repository includes a self-contained, HTTP-only example on
64-
`127.0.0.1:8080`:
65-
66-
```bash
67-
target/release/httpjet --root "$(pwd)/examples/litespeed" check --strict
68-
target/release/httpjet --root "$(pwd)/examples/litespeed" serve \
69-
--http-addr 127.0.0.1:8080 \
70-
--https-addr "" \
71-
--workers 1 \
72-
--no-php
73-
```
74-
75-
Then request it with:
76-
77-
```bash
18+
target/release/httpjet --root "$PWD/examples/litespeed" check --strict
19+
target/release/httpjet --root "$PWD/examples/litespeed" serve \
20+
--http-addr 127.0.0.1:8080 --https-addr "" --workers 1 --no-php
7821
curl -H 'Host: example.test' http://127.0.0.1:8080/
7922
```
8023

81-
`--no-php` is appropriate only for a configuration that cannot expose PHP
82-
source files. Do not add PHP content to this static example.
24+
Use `--root` with an existing LiteSpeed configuration tree. Run
25+
`httpjet serve --help` for runtime options.
8326

84-
For an existing installation, validate its configuration before serving:
27+
## Development
8528

86-
```bash
87-
httpjet --root /path/to/litespeed check --strict
88-
httpjet --root /path/to/litespeed serve \
89-
--http-addr 127.0.0.1:8080 \
90-
--https-addr 127.0.0.1:4443 \
91-
--workers 1 \
92-
--no-mtls \
93-
--php-socket /tmp/httpjet-test-lsphp.sock \
94-
--php-children 2
95-
```
96-
97-
Use alternate ports and a non-production PHP socket until application,
98-
protocol, cache, and rollback testing is complete. `--no-mtls` is for explicit
99-
local testing only.
100-
101-
## Test
29+
The `httpjet` binary is under `crates/httpjet`; reusable components are the
30+
`hj-*` crates.
10231

10332
```bash
10433
cargo fmt --all --check
10534
cargo check -p httpjet --bin httpjet
106-
cargo check -p httpjet --bin httpjet --features profiling
10735
cargo test --workspace
10836
```
10937

110-
Ignored tests can depend on local software or configuration and must be invoked
111-
separately. The profiling feature exposes raw pprof data for external tools; it
112-
does not bundle a flamegraph renderer.
113-
114-
## Architecture
115-
116-
The workspace contains one binary crate and fourteen `hj-*` libraries. See
117-
[ARCHITECTURE.md](ARCHITECTURE.md) for the dependency map and request
118-
pipeline.
119-
120-
## Installation
121-
122-
[packaging/systemd](packaging/systemd) contains an unprivileged, static-only
123-
example service for the bundled configuration. It deliberately listens on
124-
port 8080 and enables neither TLS, PHP, nor the page cache. Production policy
125-
belongs in a reviewed local unit or drop-in.
126-
127-
## Contributing and security
128-
129-
Contributions use DCO sign-offs and are accepted under GPL-3.0-only; FaraTech
130-
does not require a proprietary-relicensing CLA. See
131-
[CONTRIBUTING.md](CONTRIBUTING.md).
132-
133-
Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
134-
Third-party attributions are in [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
135-
136-
## Sponsorship
137-
138-
Donations are optional support for maintenance. They do not buy private
139-
features, support obligations, or influence over the roadmap. Funding links
140-
will appear in GitHub's **Sponsor** button when enrollment is enabled.
141-
142-
## License and names
143-
144-
Copyright © FaraTech.
38+
See [CONTRIBUTING.md](CONTRIBUTING.md), [SECURITY.md](SECURITY.md), and
39+
[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).
14540

146-
FaraTech-owned code and documentation are licensed under
147-
[GNU GPL version 3 only](LICENSE). Third-party components retain their own
148-
licenses.
41+
Donations support maintenance only; they do not buy features or influence.
42+
Funding links will appear in GitHub's Sponsor button when enabled.
14943

150-
LiteSpeed and OpenLiteSpeed are names of their respective owners. httpjet is
151-
an independent project and is not affiliated with or endorsed by LiteSpeed
152-
Technologies.
44+
httpjet is [GPL-3.0-only](LICENSE), with no paid edition or license key. It is
45+
independent of and not endorsed by LiteSpeed Technologies.

SECURITY.md

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,8 @@
1-
# Security policy
1+
# Security
22

3-
## Supported versions
3+
Use GitHub's private vulnerability reporting from this repository's
4+
**Security** tab. Do not disclose suspected vulnerabilities in public issues.
45

5-
Until httpjet reaches a stable release, security fixes are made on the latest
6-
`main` branch only. There is no long-term-support release line yet.
7-
8-
## Reporting a vulnerability
9-
10-
Please use GitHub's private vulnerability reporting flow from the repository's
11-
**Security** tab. Do not open a public issue for a suspected vulnerability.
12-
13-
Include the affected revision, a minimal reproduction, expected impact, and
14-
any suggested mitigation. Please avoid accessing data that is not yours,
15-
disrupting services, or testing against installations without permission.
16-
17-
We will acknowledge a usable report as soon as practical, investigate it, and
18-
coordinate disclosure after a fix is available. This project does not
19-
currently operate a paid bug-bounty program.
20-
21-
Operational questions and ordinary hardening suggestions can use public
22-
issues when they do not disclose an exploitable weakness.
6+
Include the affected revision, reproduction, and impact. Test only systems you
7+
own or have permission to test. Security fixes target the latest `main`; there
8+
is no paid bounty or LTS branch.

0 commit comments

Comments
 (0)