New version: 0.1.0. First public release!

This commit is contained in:
Sergio Benitez 2016-12-23 05:03:07 -08:00
parent 22a058d2d5
commit a94fcf41db
5 changed files with 72 additions and 18 deletions

View File

@ -1,3 +1,40 @@
# Version 0.1.0 (Dec 23, 2016)
This is the first public release of Rocket!
## Breaking
All of the mentions to `hyper` types in core Rocket types are no more. Rocket
now implements its own `Request` and `Response` types.
* `ContentType` uses associated constants instead of static methods.
* `StatusCode` removed in favor of new `Status` type.
* `Response` type alias superceded by `Response` type.
* `Responder::respond` no longer takes in hyper type.
* `Responder::respond` returns `Response`, takes `self` by move.
* `Handler` returns `Outcome` instead of `Response` type alias.
* `ErrorHandler` returns `Result`.
* All `Hyper*` types were moved to unprefixed versions in `hyper::`.
* `MockRequest::dispatch` now returns a `Response` type.
* `URIBuf` removed in favor of unified `URI`.
* Rocket panics when an illegal, dynamic mount point is used.
## Core
* Rocket handles `HEAD` requests automatically.
* New `Response` and `ResponseBuilder` types.
* New `Request`, `Header`, `Status`, and `ContentType` types.
## Testing
* `MockRequest` allows any type of header.
* `MockRequest` allows cookies.
## Codegen
* Debug output disabled by default.
* The `ROCKET_CODEGEN_DEBUG` environment variables enables codegen logging.
# Version 0.0.11 (Dec 11, 2016)
## Streaming Requests

View File

@ -74,7 +74,8 @@ You should see `Hello, world!` by visiting `http://localhost:8000`.
To test Rocket, simply run `./scripts/test.sh` from the root of the source tree.
This will build and test the `core`, `codegen`, and `contrib` libraries as well
as all of the examples. This is the script that gets run by Travis CI.
as all of the examples. This is the script that gets run by Travis CI. To test a
crate individually, run `cargo test --all-features`.
### Core
@ -90,6 +91,12 @@ extracted from `rustc`, for testing. See the [compiler test
documentation](https://github.com/rust-lang/rust/blob/master/COMPILER_TESTS.md)
for information on how to write compiler tests.
## Documentation
You can build the Rocket API documentation locally by running
`./scripts/mk-docs.sh`. The resulting documentation is what gets uploaded to
[api.rocket.rs](https://api.rocket.rs).
## Contributing
Contributions are absolutely, positively welcome and encouraged! Contributions
@ -98,7 +105,7 @@ come in many forms. You could:
1. Submit a feature request or bug report as an [issue](https://github.com/SergioBenitez/Rocket/issues).
2. Ask for improved documentation as an [issue](https://github.com/SergioBenitez/Rocket/issues).
3. Comment on [issues that require
feedback](https://github.com/SergioBenitez/Rocket/issues?q=is%3Aissue+is%3Aopen+label%3A%22feedback+wanted%22).
feedback](https://github.com/SergioBenitez/Rocket/issues?q=is%3Aissue+is%3Aopen+label%3A%22feedback+wanted%22).
4. Contribute code via [pull requests](https://github.com/SergioBenitez/Rocket/pulls).
We aim to keep Rocket's code quality at the highest level. This means that any
@ -113,7 +120,10 @@ code you contribute must be:
* **Tested:** You must add (and pass) convincing tests for any functionality you add.
* **Focused:** Your code should do what it's supposed to do and nothing more.
All pull requests are code reviewed and tested by the CI.
All pull requests are code reviewed and tested by the CI. Note that unless you
explicitly state otherwise, any contribution intentionally submitted for
inclusion in Rocket by you shall be dual licensed under the MIT License and
Apache License, Version 2.0, without any additional terms or conditions.
## Performance
@ -130,7 +140,7 @@ world!" benchmark:
* **Processor:** Intel Xeon X5675 @ 3.07GHz
* **Operating System:** Mac OS X v10.11.6
**Hyper v0.10.0-a.0** (46 LOC) results (best of 3, +/- 300 req/s, +/- 1us latency):
**Hyper v0.10.0-a.0** (46 LOC) results (best of 3, +/- 2000 req/s, +/- 10us latency):
Running 10s test @ http://localhost:80
2 threads and 10 connections
@ -141,21 +151,21 @@ world!" benchmark:
Requests/sec: 55715.98
Transfer/sec: 8.08MB
**Rocket v0.0.11** (8 LOC) results (best of 3, +/- 200 req/s, +/- 0.5us latency):
**Rocket v0.1.0** (8 LOC) results (best of 3, +/- 1000 req/s, +/- 5us latency):
Running 10s test @ http://localhost:80
2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 163.97us 27.47us 699.00us 70.30%
Req/Sec 29.58k 1.02k 32.39k 64.85%
594546 requests in 10.10s, 82.78MB read
Requests/sec: 58868.83
Transfer/sec: 8.20MB
Latency 161.33us 37.40us 2.08ms 75.89%
Req/Sec 30.10k 1.13k 33.28k 72.77%
604782 requests in 10.10s, 84.21MB read
Requests/sec: 59883.30
Transfer/sec: 8.34MB
**Summary:**
* Rocket throughput higher by 5.7% (higher is better).
* Rocket latency lower by 7.4% (lower is better).
* Rocket throughput higher by 7.5% (higher is better).
* Rocket latency lower by 7.8% (lower is better).
### Future Improvements
@ -165,3 +175,10 @@ performant HTTP backend is planned. We expect performance to improve
significantly at that time. The [Stabilize HTTP
Library](https://github.com/SergioBenitez/Rocket/issues/17) issue tracks the
progress on this front.
## License
Rocket is licensed under either of the following, at your option:
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT License ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

View File

@ -1,6 +1,6 @@
[package]
name = "rocket_codegen"
version = "0.1.0-rc"
version = "0.1.0"
authors = ["Sergio Benitez <sb@sergio.bz>"]
description = "Code generation for the Rocket web framework."
documentation = "https://api.rocket.rs/rocket_codegen/"
@ -14,7 +14,7 @@ license = "MIT/Apache-2.0"
plugin = true
[dependencies]
rocket = { version = "0.1.0-rc", path = "../lib/" }
rocket = { version = "0.1.0", path = "../lib/" }
log = "^0.3"
[dev-dependencies]

View File

@ -1,6 +1,6 @@
[package]
name = "rocket_contrib"
version = "0.1.0-rc"
version = "0.1.0"
authors = ["Sergio Benitez <sb@sergio.bz>"]
description = "Community contributed libraries for the Rocket web framework."
documentation = "https://api.rocket.rs/rocket_contrib/"
@ -21,7 +21,7 @@ templates = ["serde", "serde_json", "lazy_static_macro", "glob"]
lazy_static_macro = ["lazy_static"]
[dependencies]
rocket = { version = "0.1.0-rc", path = "../lib/" }
rocket = { version = "0.1.0", path = "../lib/" }
log = "^0.3"
# JSON and templating dependencies.

View File

@ -1,6 +1,6 @@
[package]
name = "rocket"
version = "0.1.0-rc"
version = "0.1.0"
authors = ["Sergio Benitez <sb@sergio.bz>"]
description = """
Web framework for nightly with a focus on ease-of-use, expressability, and
@ -26,7 +26,7 @@ default-features = false
[dev-dependencies]
lazy_static = "0.2"
rocket_codegen = { version = "0.1.0-rc", path = "../codegen" }
rocket_codegen = { version = "0.1.0", path = "../codegen" }
[features]
testing = []