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) # Version 0.0.11 (Dec 11, 2016)
## Streaming Requests ## 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. 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 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 ### 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) documentation](https://github.com/rust-lang/rust/blob/master/COMPILER_TESTS.md)
for information on how to write compiler tests. 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 ## Contributing
Contributions are absolutely, positively welcome and encouraged! Contributions 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). 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). 2. Ask for improved documentation as an [issue](https://github.com/SergioBenitez/Rocket/issues).
3. Comment on [issues that require 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). 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 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. * **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. * **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 ## Performance
@ -130,7 +140,7 @@ world!" benchmark:
* **Processor:** Intel Xeon X5675 @ 3.07GHz * **Processor:** Intel Xeon X5675 @ 3.07GHz
* **Operating System:** Mac OS X v10.11.6 * **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 Running 10s test @ http://localhost:80
2 threads and 10 connections 2 threads and 10 connections
@ -141,21 +151,21 @@ world!" benchmark:
Requests/sec: 55715.98 Requests/sec: 55715.98
Transfer/sec: 8.08MB 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 Running 10s test @ http://localhost:80
2 threads and 10 connections 2 threads and 10 connections
Thread Stats Avg Stdev Max +/- Stdev Thread Stats Avg Stdev Max +/- Stdev
Latency 163.97us 27.47us 699.00us 70.30% Latency 161.33us 37.40us 2.08ms 75.89%
Req/Sec 29.58k 1.02k 32.39k 64.85% Req/Sec 30.10k 1.13k 33.28k 72.77%
594546 requests in 10.10s, 82.78MB read 604782 requests in 10.10s, 84.21MB read
Requests/sec: 58868.83 Requests/sec: 59883.30
Transfer/sec: 8.20MB Transfer/sec: 8.34MB
**Summary:** **Summary:**
* Rocket throughput higher by 5.7% (higher is better). * Rocket throughput higher by 7.5% (higher is better).
* Rocket latency lower by 7.4% (lower is better). * Rocket latency lower by 7.8% (lower is better).
### Future Improvements ### Future Improvements
@ -165,3 +175,10 @@ performant HTTP backend is planned. We expect performance to improve
significantly at that time. The [Stabilize HTTP significantly at that time. The [Stabilize HTTP
Library](https://github.com/SergioBenitez/Rocket/issues/17) issue tracks the Library](https://github.com/SergioBenitez/Rocket/issues/17) issue tracks the
progress on this front. 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] [package]
name = "rocket_codegen" name = "rocket_codegen"
version = "0.1.0-rc" version = "0.1.0"
authors = ["Sergio Benitez <sb@sergio.bz>"] authors = ["Sergio Benitez <sb@sergio.bz>"]
description = "Code generation for the Rocket web framework." description = "Code generation for the Rocket web framework."
documentation = "https://api.rocket.rs/rocket_codegen/" documentation = "https://api.rocket.rs/rocket_codegen/"
@ -14,7 +14,7 @@ license = "MIT/Apache-2.0"
plugin = true plugin = true
[dependencies] [dependencies]
rocket = { version = "0.1.0-rc", path = "../lib/" } rocket = { version = "0.1.0", path = "../lib/" }
log = "^0.3" log = "^0.3"
[dev-dependencies] [dev-dependencies]

View File

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

View File

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