Commit Graph

338 Commits

Author SHA1 Message Date
Sergio Benitez 1fb061496d Revamp configuration.
This commit completely overhauls Rocket's configuration systems, basing
it on the new Figment library. It includes many breaking changes
pertaining to configuration. They are:

  * "Environments" are replaced by "profiles".
  * 'ROCKET_PROFILE' takes the place of 'ROCKET_ENV'.
  * Profile names are now arbitrary, but 'debug' and 'release' are given
    special treatment as default profiles for the debug and release
    compilation profiles.
  * A 'default' profile now sits along-side the meta 'global' profile.
  * The concept of "extras" is no longer present; users can extract any
    values they want from the configured 'Figment'.
  * The 'Poolable' trait takes an '&Config'.
  * The 'secrets' feature is disabled by default.
  * It is a hard error if 'secrets' is enabled under the 'release'
    profile and no 'secret_key' is configured.
  * 'ConfigBuilder' no longer exists: all fields of 'Config' are public
    with public constructors for each type.
  * 'keep_alive' is disabled with '0', not 'false' or 'off'.
  * Inlined error variants into the 'Error' structure.
  * 'LoggingLevel' is now 'LogLevel'.
  * Limits can now be specified in SI units: "1 MiB".

The summary of other changes are:

  * The default config file can be configured with 'ROCKET_CONFIG'.
  * HTTP/1 and HTTP/2 keep-alive configuration is restored.
  * 'ctrlc' is now a recognized config option.
  * 'serde' is now a core dependency.
  * TLS misconfiguration errors are improved.
  * Several example use '_' as the return type of '#[launch]' fns.
  * 'AdHoc::config()' was added for simple config extraction.
  * Added more documentation for using 'Limits'.
  * Launch information is no longer treated specially.
  * The configuration guide was rewritten.

Resolves #852.
Resolves #209.
Closes #1404.
Closes #652.
2020-10-20 19:21:56 -07:00
Sergio Benitez 5d9035ddc1 Keep an op-log for sync 'CookieJar'.
In brief, this commit:

  * Updates to the latest upstream 'cookie', fixing a memory leak.
  * Make changes to 'CookieJar' observable only through 'pending()'.
  * Deprecates 'Client::new()' in favor of 'Client::tracked()'.
  * Makes 'dispatch()' on tracked 'Client's synchronize on cookies.
  * Makes 'Client::untracked()' actually untracked.

This commit updates to the latest 'cookie' which removes support for
'Sync' cookie jars. Instead of relying on 'cookie', this commit
implements an op-log based 'CookieJar' which internally keeps track of
changes. The API is such that changes are only observable through
specialized '_pending()' methods.
2020-10-14 21:37:16 -07:00
Sergio Benitez 092e03f720 Generate a proxy structure for better namespacing.
Prior to this commit, it was impossible to 'use' a route from a separate
namespace for use in a 'routes!' macro. Naturally, this was a common
source of confusion amongst users. This commit obviates this deficiency
by generating a "proxy" structure that can be imported and converted
into a 'Route'/'Catcher' or their static variants.

This change is largely backwards compatible but can break existing code
when routes are named identically to other types in the namespace.
2020-10-12 22:11:44 -07:00
Cezar Halmagean 2d1d7e8c89 Fix typo in requests guide: 'A' -> 'a'. 2020-10-11 12:48:09 -07:00
Howard Su 2040693dab Add missing explicit lifetime parameter to `PasteId<'_>` in pastebin guide. 2020-10-11 12:45:07 -07:00
Jeb Rosen bc8c5b9ee2 Use 'spawn_blocking' in '#[database]'.
The connection guard type generated by `#[database]` no longer
implements `Deref` and `DerefMut`. Instead, it provides an `async fn
run()` that gives access to the underlying connection on a closure run
through `spawn_blocking()`.

Additionally moves most of the implementation of `#[database]` out
of generated code and into library code for better type-checking.
2020-09-10 03:34:26 -07:00
Sergio Benitez 02b79e28f7 Use 'unwrap' instead of 'expect' in testing guide.
Resolves #1356.
2020-08-16 02:23:38 -07:00
Sergio Benitez 52320020bc Use thread-safe 'CookieJar's.
The user-facing changes effected by this commit are:

  * The 'http::Cookies<'_>' guard is now '&http::CookieJar<'_>'.
  * The "one-at-a-time" jar restriction is no longer imposed.
  * 'CookieJar' retrieval methods return 'http::CookieCrumb'.
  * The 'private-cookies' feature is now called 'secrets'.
  * Docs flag private cookie methods with feature cfg.
  * Local, async request dispatching is never serialized.
  * 'Client::cookies()' returns the tracked 'CookieJar'.
  * 'LocalResponse::cookies()' returns a 'CookieJar'.
  * 'Response::cookies()' returns an 'impl Iterator'.
  * A path of '/' is set by default on all cookies.
  * 'SameSite=strict' is set by default on all cookies.
  * 'LocalRequest::cookies()' accepts any 'Cookie' iterator.
  * The 'Debug' impl for 'Request' prints the cookie jar.

Resolves #1332.
2020-08-16 02:19:45 -07:00
Sergio Benitez 549c9241c4 Require data limits on 'Data::open()'.
Closes #1325.
2020-08-06 02:46:04 -05:00
Sergio Benitez 45b4436ed3 Add default catchers: '#[catch(default)]'.
The bulk of the changes in this commit are for creating an
'ErrorHandler' trait that works like the 'Handler' trait, but for
errors. Furthermore, Rocket's default catcher now responds with a JSON
payload if the preferred 'Accept' media type is JSON.

This commit also fixes a bug in 'LocalRequest' where the internal
'Request' contained an correct 'URI'.
2020-07-30 01:55:41 -07:00
Jonathan Dickinson f3beb68491 Remove superfluous lifetimes in 'Fairing' methods. 2020-07-23 21:32:20 -07:00
Sergio Benitez adc79016cd Rearrange top-level exports. Use '#[launch]'.
This commits makes the following high-level changes:

  * 'ShutdownHandle' is renamed to 'Shutdown'.
  * 'Rocket::shutdown_handle()' is renamed to 'Rocket::shutdown()'.
  * '#[launch]` is preferred to '#[rocket::launch]'.
  * Various docs phrasings are improved.
  * Fixed various broken links in docs.

This commits rearranges top-level exports as follows:

  * 'shutdown' module is no longer exported.
  * 'Shutdown' is exported from the crate root.
  * 'Outcome' is not longer exported from the root.
  * 'Handler', 'ErrorHandler' are no longer exported from the root.
2020-07-22 16:10:02 -07:00
Maxime Guerreiro 9895eb736d Use clearer imports in 'requests' guide. 2020-07-22 13:11:13 -07:00
atouchet 79886c1a8e Update 'Riot' to 'Element'. 2020-07-22 13:03:35 -07:00
Necmettin Karakaya fde6eda915 Fix various typos throughout the codebase. 2020-07-22 12:56:01 -07:00
Sergio Benitez ebdb4a2c3b Note our preference for '#[macro_use]' in guide.
Closes #1156.
2020-07-22 12:46:54 -07:00
Jeb Rosen 8224a1592f Simplify language in 'responses' guide. 2020-07-22 12:28:48 -07:00
Sergio Benitez b47d1b8f0f Rework docs for stable and async support. 2020-07-21 16:15:13 -07:00
Sergio Benitez 9a2149b43d Test guide and README using stable 'doc_comment'. 2020-07-21 15:31:44 -07:00
Sergio Benitez 949b01cb9d Remove 'redis' integration from 'contrib'.
The latest version of 'redis' is async and implements its own connection
retrieval.
2020-07-21 15:11:07 -07:00
Jeb Rosen 9d4fea2937 Remove 'mongodb' integration from 'contrib'.
The latest version of 'mongodb' is async and implements its own internal
connection pooling.
2020-07-21 10:54:07 -07:00
Jeb Rosen 3a40d1071c Remove 'rusted_cypher' integration from 'contrib'. 2020-07-21 10:54:07 -07:00
Jeb Rosen 62113abcd2 Upgrade 'redis' to 0.15 in 'contrib'. 2020-07-21 10:54:07 -07:00
Jeb Rosen fbe6c1081f Upgrade 'rusqlite' to 0.23 in 'contrib'. 2020-07-21 10:54:07 -07:00
Jeb Rosen 2879f44148 Upgrade 'mysql' to 18.0 in 'contrib'. 2020-07-21 10:54:07 -07:00
Sergio Benitez 0909ba2ef6 Only enable testing features on 'cfg(test)'. 2020-07-16 05:49:38 -07:00
Sergio Benitez 62355b424f Remove use of stable 'proc_macro_hygiene' feature. 2020-07-11 10:48:08 -07:00
Jeb Rosen 114a733d70 Use 'tokio::fs::File' in the 'pastebin' example. 2020-07-11 10:07:37 -07:00
Jeb Rosen 2b3d8110f1 Use '#[rocket::launch]' in guide examples. 2020-07-11 10:07:37 -07:00
Jeb Rosen 2c82b3e1d5 Update and fix guide tests. 2020-07-11 10:07:37 -07:00
Sergio Benitez 832408ea9b Add example requiring async testing. 2020-07-11 09:24:30 -07:00
Jeb Rosen 96bafd8ac5 Mention async testing in the testing guide. 2020-07-11 09:24:30 -07:00
Jeb Rosen 06975bfaea Use the blocking testing API everywhere.
Co-authored-by: Sergio Benitez <sb@sergio.bz>
2020-07-11 09:24:30 -07:00
Sergio Benitez 03127f4dae Add blocking variant of 'local'.
This commit adds the 'local::blocking' module and moves the existing
asynchronous testing to 'local::asynchronous'. It also includes several
changes to improve the local API, bringing it to parity (and beyond)
with master. These changes are:

  * 'LocalRequest' implements 'Clone'.
  * 'LocalResponse' doesn't implement 'DerefMut<Target=Response>'.
    Instead, direct methods on the type, such as 'into_string()', can
    be used to read the 'Response'.
  * 'Response::body()' returns an '&ResponseBody' as opposed to '&mut
    ResponseBody', which is returned by a new 'Response::body_mut()'.
  * '&ResponseBody' implements 'known_size()` to retrieve a body's size,
    if it is known.

Co-authored-by: Jeb Rosen <jeb@jebrosen.com>
2020-07-11 09:24:30 -07:00
Sergio Benitez 12308b403f Add '#[rocket::launch]' attribute.
The attribute is applied everywhere it can be across the codebase and is
the newly preferred method for launching an application. This commit
also makes '#[rocket::main]` stricter by warning when it is applied to
functions other than 'main'.
2020-07-11 09:24:29 -07:00
Jeb Rosen bc1b90cbdb Add '#[rocket::main]' attribute and make 'launch()' an 'async fn'.
'#[rocket::main]' works like '#[rocket::async_test]', but it uses
tokio's multithreaded scheduler.
2020-07-11 09:24:29 -07:00
Jeb Rosen e72058de81 Add 'config()' and 'state()' functions directly to 'Rocket' for convenience. 2020-07-11 09:24:29 -07:00
Jeb Rosen b0238e5110 Make 'Fairing::on_attach()' async.
This transitively requires that 'Rocket::inspect()', 'Client::new()',
and 'Client::untracked()' also become async.
2020-07-11 09:24:29 -07:00
Jeb Rosen dea940c7a8 Defer execution of operations on 'Rocket' until their effects will be
observed.

This is a prerequisite for async on_attach fairings. 'Rocket' is now a
builder wrapper around the 'Manifest' type, with operations being
applied when needed by 'launch()', 'Client::new()', or 'inspect()'.
'inspect()' returns an '&Manifest', which now provides the methods that
could be called on an '&Rocket'.
2020-07-11 09:24:29 -07:00
Sergio Benitez 431b963774 Use 'async_trait' for 'FromRequest'.
Removes 'FromRequestAsync'.
2020-07-11 09:24:29 -07:00
Jeb Rosen 70db7fb2ea Add some general documentation on async as it pertains to Rocket. 2020-07-11 09:24:29 -07:00
Jeb Rosen f2487ccec5 Update the guide for async-related API changes. 2020-07-11 09:24:29 -07:00
Jeb Rosen 5d439bafc0 Convert core to async and add support for async routes.
Minimum rustc bump required for rust-lang/rust#61775
2020-07-11 09:24:28 -07:00
arctic-alpaca 1e623c8aaa Fix invalid JSON data in a guide example. 2020-06-28 10:35:15 -07:00
Sergio Benitez 336353ced6 Foreshadow routing and catcher options in overview.
Resolves #1206.

Co-authored-by: Jeb Rosen <jeb@jebrosen.com>
2020-06-11 20:42:32 -07:00
benjaminbecker 1010f6a2a8 Fix typo in configuration guide: 'AssertsDir' -> 'AssetsDir'. 2020-04-21 18:47:22 -07:00
Sergio Benitez 53353df633 Fix more broken links. 2020-03-09 02:03:38 -07:00
Sergio Benitez 021e2fdb0e Update references to chat channels. 2020-02-27 14:39:36 -08:00
Sergio Benitez 39b1f2f8d0 Provide more details for opaque examples in guide.
Closes #1100.
2020-02-15 19:47:50 -08:00
Sergio Benitez 95c981de79 Test all guide code examples.
Every code example is now fully runnable and testable. As a result, all
examples are now tested and include imports. Relevant imports are shown
by default. Code examples can be expanded to show all imports.

Fixes #432.
2020-02-15 04:02:19 -08:00
Sergio Benitez f35e3c4aca Set cookies even on error responses.
Fixes #1213.
2020-01-23 21:10:04 -08:00
Jeb Rosen 31712018bb Update versions and links for updated dependencies. 2020-01-20 14:51:00 -08:00
Michael Howell 121210c55c Add support for base16-encoded (a.k.a. hex-encoded) secret keys. 2019-11-29 12:06:55 -08:00
Jeb Rosen 9c5d0912ec Explain how to resolve the One-At-A-Time Cookies problem when using FlashMessage.
Fixes #1090.
2019-11-16 13:15:47 -08:00
Jeb Rosen d98e938e1a Point out that the database attribute must be imported.
Fixes #1074.
2019-11-16 13:15:47 -08:00
Jeb Rosen 14ee05b9a1 Change 'cookies' to 'mut cookies' in the guide, as required to call 'get_private'.
Fixes #1095.
2019-11-16 13:15:44 -08:00
Jeb Rosen 3e4f8453ce Remove use of the 'decl_macro' feature.
Also removes one internal use in the 'typed-uris' codegen test.
2019-07-19 11:39:56 -07:00
Jeb Rosen fc78eaf836 Document contrib database library versions.
This commit also adds a note to the contrib database documentation
describing how to enable features in upstream database crates.
2019-06-26 09:11:27 -04:00
Sergio Benitez 2495894c37 Fix route path rendering in pastebin guide.
Resolves #1027.
2019-06-11 14:23:38 -07:00
Jeb Rosen 273c7a607d Update 'mysql' to 16.0, 'redis' to 0.10. 2019-05-16 13:50:54 -07:00
Leonora Tindall c6c0b3a6e1 Update 'rusqlite' dependency to 0.16. 2019-05-16 13:50:54 -07:00
Sergio Benitez 1caf87eb21 Move to 0.5.0-dev on master. 2019-05-13 16:18:48 -07:00
Sergio Benitez 9d93d55538 Document mounting multiple routes in guide.
Also mention that a route's rank is displayed in brackets.

Closes #983.
Closes #981.
2019-05-10 19:39:38 -07:00
Jeb Rosen 7405033a66 Update 'Rocket source code' link in the guide. 2019-05-10 18:30:17 -07:00
Jeb Rosen 0666e425fe Add a few missing pieces of 'compression' documentation. 2019-05-04 08:38:11 -07:00
Yazid 7833ee1b76 Correction to requests guide: 'route' -> 'guard'. 2019-04-12 17:58:24 -07:00
Bryan Jennings c776c59e6a Fix typo in requests guide: missing ')'. 2019-04-12 17:57:02 -07:00
Denis Andrejew 06edd5fab5 Clarify form method rewriting in requests guide. 2019-03-30 10:16:25 -07:00
Damir Vandic ecc17d191f Reword guide-level explanation of optional query parameters. 2019-03-09 12:01:23 -08:00
Noah Rosenzweig fb1f7482ee Fix typo in fairings guide: 'to the launch' -> 'to launch'. 2019-01-31 20:13:25 -08:00
An Long 5ce43ed4e9 Add support for memcache connection pooling in 'rocket_contrib'. 2019-01-13 11:16:11 -08:00
Riley Watkins 4f81292830 Fix typo in responses guide: '#[responder]' -> '#[response]'. 2018-12-26 10:53:15 -08:00
Eric Dattore aba3ad327b Add database pool integration tests. 2018-12-23 21:12:44 -08:00
John Downey 9750ae67dd Update pastebin guide for 0.4. 2018-12-14 13:21:30 -08:00
Sergio Benitez 104429f398 Add 'Debug' to 'Responder' derive in announcement. 2018-12-12 00:04:55 -08:00
Andrew 4a0fee4129 Fix typo in requests guide: 'of' -> 'or'. 2018-12-10 22:26:02 -08:00
Sergio Benitez 746023fe1f Use '&*' in database docs for reliable deref coercions.
Resolves #855.
2018-12-10 22:20:34 -08:00
Sergio Benitez ba96de314c Fix news announcement title in index. 2018-12-10 11:59:13 -08:00
Jelte Fennema cb520f4067 Fix status code typo in release announcement. 2018-12-08 14:48:03 -08:00
Sergio Benitez f64d9bc1a1 Fix more typos in release announcement. 2018-12-08 10:29:43 -08:00
Sergio Benitez 1d82225fc9 Fix release announcement typo. 2018-12-08 10:19:00 -08:00
Sergio Benitez 2ec865dea2 Add v0.4 release announcement. 2018-12-08 08:45:06 -08:00
Sergio Benitez 5056705884 Improve query string routing and typed URI docs. 2018-12-07 12:09:15 -08:00
Desmond d3c161e7d6 Fix typo in responses guide: 'T he' -> 'The'. 2018-12-06 21:29:51 -08:00
Sergio Benitez a4dcb0cf4c New version: 0.4.0. 2018-12-06 09:19:11 -08:00
Eric Dattore 50a635ed8e Add support for MongoDB connection pooling in 'rocket_contrib'. 2018-12-06 08:17:12 -08:00
Sergio Benitez 90a6749313 New version: 0.4.0-rc.2. 2018-11-30 21:00:18 -08:00
Zack Chandler 59e27820e9 Fix typo in guide intro: 'offerring' -> 'offering'. 2018-11-14 03:42:02 -08:00
Vishal Sodani d813883fa5 Remove extraneous 'to' in state guide. 2018-11-14 03:40:58 -08:00
Sergio Benitez 4224419e63 Reduce 'cfg' usage for 'private-cookies' feature. 2018-11-08 23:56:15 -08:00
Linus Unnebäck 53758c6dd7 Introduce the 'private-cookies' feature. 2018-11-08 23:38:18 -08:00
Sergio Benitez 0ac6c18deb Fix 'rocket::custom()' guide documentation. 2018-11-08 09:26:50 -08:00
Sergio Benitez 1c496b3424 Improve the overview site page. 2018-11-06 23:35:03 -08:00
bohov 8195453249 Fix console output in guide. 2018-11-04 17:26:06 -08:00
Sergio Benitez 4dbd87a36f New version: 0.4.0-rc.1. 2018-10-31 14:35:30 -07:00
Sergio Benitez 41de1e62fb Implement 'Responder' for 'Status'.
This commit obviates the following removed types:

  * response::Failure
  * response::status::NoContent
  * response::status::Reset

Closes #489.
2018-10-31 03:57:22 -07:00
Sergio Benitez 34c76dd0a9 Keep release info in site's 'index.toml'. 2018-10-28 20:17:44 -07:00
Sergio Benitez 4d72a92a9c Reorganize templating sections in responses guide. 2018-10-28 20:17:42 -07:00
Sergio Benitez 556206e8b3 Version all URLs to 'rocket.rs'. 2018-10-26 21:20:12 -07:00
Sergio Benitez 38536b58b5 Improve templates guide documentation. 2018-10-26 20:52:28 -07:00
Sergio Benitez 2b89acb5bc Use better verbage on site index. 2018-10-26 03:33:12 -07:00
Sergio Benitez 0493febc58 Keep core count generic in guide. 2018-10-23 01:22:46 -07:00
Sergio Benitez 3903ffdb47 Update guide in full for current 0.4.0-dev. 2018-10-22 14:50:57 -07:00
Sergio Benitez 2d56af504d Fix broken site URLs and typos. 2018-10-16 04:01:17 -07:00
Sergio Benitez 3151bdc212 Revise 'rocket::custom()' explanation for updated guide. 2018-10-15 22:56:40 -07:00
Sergio Benitez 26ee132782 Update site content for restructure. 2018-10-15 22:53:05 -07:00
Zac Pullar-Strecker 1c0f2d41a7 Explain 'rocket::custom()' in configuration guide.
Resolves #371.
2018-10-15 22:52:41 -07:00
Sergio Benitez 2839aca8ce Update features for latest nightly. 2018-10-09 04:31:09 -07:00
Sergio Benitez 360b0e80b0 Port all codegen tests to codegen_next. 2018-10-09 04:31:08 -07:00
Sergio Benitez d011cd63fc Remove unnecessary 'use rocket::catch'. 2018-09-16 20:52:07 -07:00
Sergio Benitez 351757c6ee Rename 'Rocket::catch()' to 'Rocket::register()'. 2018-09-16 02:25:12 -07:00
Sergio Benitez 112e700836 Reimplement 'catch' attribute as a proc-macro. 2018-09-16 01:32:40 -07:00
Sergio Benitez fe9fad339e Clean up connection pooling documentation. 2018-08-15 23:31:49 -07:00
Sergio Benitez 5fa28ae9d2 Mention 'format' shorthands in requests guide. 2018-08-14 22:15:16 -07:00
Alfie John 47485dbadd Fix a few grammar issues in guide. 2018-08-14 21:50:23 -07:00
Sergio Benitez e0961e0750 Require all 'AdHoc' fairings to be named. 2018-08-14 09:14:06 -07:00
Sergio Benitez f941b1310b Improve template engine customization docs. 2018-08-10 23:29:12 -07:00
jeb 491b04cf5a Implement template auto-reload.
Resolves #163.
2018-08-10 23:29:12 -07:00
Sergio Benitez b5a4e18b0e Remove outdated lint information in state guide.
Closes #389.
2018-08-07 23:55:25 -07:00
Sergio Benitez 41f0614b14 Update request-local state documentation. 2018-08-07 23:16:16 -07:00
jeb d1cfdbaa8e Add documentation and examples for request-local state.
Closes #654.
2018-08-07 19:40:30 -07:00
Oleg Antonyan 0079e738e8 Add docs on retrieving config extras to guide.
Resolves #576.
2018-07-02 15:17:53 -07:00
Rolf Schmidt 0842612607 Improve error catcher documentation in requests guide. 2018-05-31 21:16:11 +02:00
Sergio Benitez d17b392538 Use diesel <= 1.2 while nightly issues persist. 2018-05-29 18:37:14 +02:00
Richard Petrie 1914706630 Fix database pool type in state guide. 2018-05-05 00:27:33 -07:00
pixelistik 2c9506d98f Fix typo in guide: 'revisting' -> 'revisiting'. 2018-04-08 17:56:43 -07:00
Shawn T. Amundson 92b6eb161f Fix typo in responses guide: 'An' -> 'As'. 2018-04-03 13:02:30 -07:00
Daniel McNab 96bb608e3a Correct various spellings and typos in the guide.
Note that there are also some changes to the release notes included.
2018-04-03 10:57:57 -07:00
Sergio Benitez d4e590af83 Fix 'diesel' version in state guide and todo example. 2018-02-21 16:07:09 -08:00
Eric Dattore c48905f483 Use 'diesel::r2d2' in state guide and todo example.
Diesel now reexports r2d2, so rather than including that library
explicitly, let's leverage the reexport.
2018-02-21 15:53:02 -08:00
Sergio Benitez 9403006ba4 Fix guide for changes to default environments. 2018-01-20 10:02:21 -08:00
Donald Robertson 19f59b1f9b Use port 8000 as default for all environments.
Closes #317.
2018-01-20 09:43:19 -08:00
Sergio Benitez e6a602cefc Revert nightly workaround in getting started guide. 2018-01-12 20:06:27 -08:00
Sergio Benitez 24b2818f8c Update diesel to 1.0. 2018-01-03 01:38:11 -08:00
calhilcaw 401bedebb2 Update docs and examples for diesel 1.0.0-rc1. 2018-01-03 01:38:05 -08:00
Richard McCormack 2f7961f410 Fix typo in state guide: 'simple' -> 'simply'. 2017-12-28 23:21:53 -08:00
Sergio Benitez 6f35ccb9c9 Document nightly compatibility issues.
Closes #519.
2017-12-26 20:50:56 -08:00
toddWannaCode 3be6b6c4a6 Fix link to forms example in requests guide. 2017-12-14 18:39:10 +07:00
Cole R Lawrence edb494c6c3 Fix typo in fairings guide: 'event' -> 'events'. 2017-11-17 13:20:30 -08:00
Sergio Benitez 237c673be4 Rename '#[error]' to '#[catch]', 'errors!' to 'catchers!'. 2017-09-22 19:04:14 -07:00
Sergio Benitez 33e9726151 Use 'decl_macro' in markdown docs. 2017-09-14 22:13:07 -07:00
Pascal Brandt c2e4c520f1 Fix typo in site overview: by -> be. 2017-08-29 17:48:21 -07:00
Sergio Benitez a019f0d1f3 Use new 'JsonValue' type as return type of 'json!'.
Prior to this commit, a 'json!' invocation returned a value of type
'Value' from 'serde_json'. Because 'Value' does not implement
'Responder', most uses of 'json!' were wrapped in 'Json':
'Json(json!(..))`. By returning a crate-local 'JsonValue' type that
implements 'Responder', this repetition is resolved, and a 'json!' can
appear unwrapped.

This commit also removes the reexport of 'Value' from 'rocket_contrib'
as well as the default type of 'Value' for 'T' in 'Json<T>'.
2017-08-25 23:14:42 -07:00
Lee Baillie 31fd24d027 Fix typo in site overview: 'Reponder' -> 'Responder'. 2017-08-22 01:53:27 -07:00
Rolf Sievers 3a76fe03db Improve commentary on collisions in pastebin example. 2017-08-13 02:56:23 -07:00
Sergio Benitez a58790d6d9 Additional changes to fairings guide overview. 2017-08-11 15:32:24 -07:00
Lori Holden 536dd39636 Improve overview in fairings guide. 2017-08-11 15:30:02 -07:00
Arne Bahlo 6279039361 Fix database usage code in state guide: '&*conn'. 2017-08-11 15:11:45 -07:00
Sergio Benitez 3f6c6fd576 Move to 0.4.0-dev on master. 2017-08-11 09:32:27 -07:00
Sergio Benitez 6d3cd374ac Fix the 'user_id' route in cookies guide. 2017-07-18 14:27:10 -04:00
Karuna Murti 5720748557 Add missing semicolon to pastebin tutorial code. 2017-07-17 14:12:29 -04:00
Sergio Benitez f87746d211 Post-release 0.3 news article updates. 2017-07-15 02:31:20 -07:00
Sergio Benitez aa91daf71f Add 'Data Limits' section to config guide. 2017-07-15 02:29:36 -07:00
Tommy Ip ae406cf0ca Fix 'clusure' typo in fairings guide and ad_hoc.rs.
Fixes #348.
2017-07-15 00:36:41 -07:00
Sergio Benitez cdacda0896 New version: 0.3.0. 2017-07-14 11:30:48 -07:00
Sergio Benitez f093ea490d Rocket 0.3 release news. 2017-07-14 11:17:24 -07:00
Sergio Benitez f182f65054 Improvements to configuration and requests guides. 2017-07-14 11:17:24 -07:00
Sergio Benitez aa51fe0e11 Fix small typo in fairings guide. 2017-07-12 15:36:43 -07:00
Sergio Benitez 897313730d Use TitleCase for all 'content::' struct names. 2017-07-12 15:21:45 -07:00
Sergio Benitez 65886c8c4e Rename 'contrib::JSON' to 'contrib::Json'. 2017-07-12 15:11:41 -07:00
Sergio Benitez 70bc97c322 Rename 'APIKey' in example docs to 'ApiKey'. 2017-07-12 14:53:08 -07:00
Sergio Benitez da08f1ea9d Improve the fairings guide. 2017-07-11 04:45:28 -07:00
Sergio Benitez 1c866f34fa Various guide updates for 0.3. 2017-07-10 05:05:25 -07:00
Sergio Benitez 0628f01f56 Make 'Example' a subsubheading in fairings guide. 2017-07-06 20:50:39 -07:00
Sergio Benitez 90d85d3c06 Implement 'Fairing' for 'Arc<T>'. Fix various doc issues. 2017-07-06 20:48:25 -07:00
Sergio Benitez 6ddbba2571 Remove whitespace. 2017-07-06 20:47:30 -07:00
Sergio Benitez ba6d87a0e8 Add a fairings guide. 2017-07-06 20:46:43 -07:00
Sergio Benitez 67fe89dcc7 Update state guide for 0.3. Add databases section. 2017-07-06 01:58:57 -07:00
Sergio Benitez ef2739ee50 Update the pastebin tutorial for 0.3. 2017-07-04 19:39:17 -07:00
Sergio Benitez b2ab3861b4 Update the testing guide for 0.3. 2017-07-04 19:21:46 -07:00
Sergio Benitez 85051eae49 Fix minor typo in Pastebin tutorial. 2017-07-04 13:59:06 -07:00
Sergio Benitez a61977befc Rewrite the 'Responses' guide for 0.3. 2017-07-04 02:37:21 -07:00
Sergio Benitez aec2d9ea30 Finished draft of requests guide for 0.3. 2017-07-03 02:21:03 -07:00
Sergio Benitez 6781c329ea Reworking of first few chapters of guide for 0.3. 2017-07-02 22:52:07 -07:00
Sergio Benitez a6d03b1e2f Small code improvements in guide. 2017-07-02 01:37:50 -07:00
Lori Holden a6e01f97c1 Initial guide updates for 0.3. 2017-07-02 01:36:13 -07:00
Sergio Benitez 4d586c5006 Checkout the current tag in quickstart guide. 2017-06-30 18:36:59 -07:00
Sergio Benitez 73fed03ef4 New version: 0.2.8. 2017-06-01 22:10:05 -07:00
Sergio Benitez a4292ba666 Update site for 0.2.7. 2017-05-26 20:38:56 -07:00
Sergio Benitez 3c64898840 Clarify relation between Responders and error catchers.
Thanks to @echochamber for the initial push.

Closes #271.
2017-05-24 16:50:05 -07:00
Sergio Benitez 9b955747e4 Remove config global state. Use Responder::respond_to.
This commit includes two major changes to core:

  1. Configuration state is no longer global. The `config::active()`
     function has been removed. The active configuration can be
     retrieved via the `config` method on a `Rocket` instance.

  2. The `Responder` trait has changed. `Responder::respond(self)` has
     been removed in favor of `Responder::respond_to(self, &Request)`.
     This allows responders to dynamically adjust their response based
     on the incoming request.

Additionally, it includes the following changes to core and codegen:

  * The `Request::guard` method was added to allow for simple
    retrivial of request guards.
  * The `Request::limits` method was added to retrieve configured
    limits.
  * The `File` `Responder` implementation now uses a fixed size body
    instead of a chunked body.
  * The `Outcome::of<R: Responder>(R)` method was removed while
    `Outcome::from<R: Responder(&Request, R)` was added.
  * The unmounted and unmanaged limits are more cautious: they will only
    emit warnings when the `Rocket` receiver is known.

This commit includes one major change to contrib:

  1. To use contrib's templating, the fairing returned by
     `Template::fairing()` must be attached to the running Rocket
     instance.

Additionally, the `Display` implementation of `Template` was removed. To
directly render a template to a `String`, the new `Template::show`
method can be used.
2017-05-19 03:29:08 -07:00
Ivar Abrahamsen 18f8a9dd5c Fix 'hit_count' parameter name in state guide.
Updated parameter names for 'count' to 'hit_count' as code inside
functions expect 'hit_count'. This also mirrors the example project code
names.
2017-05-05 12:29:03 -07:00
Tomek Wałkuski 82c52c903a Fix typo in requests guide: forgot 'be'. 2017-05-05 12:26:45 -07:00
alexey zabelin f3f2803b0e Fix typo in requests guide. 2017-05-05 12:24:43 -07:00
Sergio Benitez 423acdd32a Use Reilly's full name in news article. 2017-04-23 20:27:34 -07:00
Sergio Benitez e6bbeacb1c New version: 0.2.6. 2017-04-17 16:21:56 -07:00
Sergio Benitez 90c6636821 Remove duplication in site README. 2017-04-16 21:29:15 -07:00
Sergio Benitez b5ef6ec85b Add site contents, including the guide. Add license information. 2017-04-16 21:11:41 -07:00