Skip to content

Commit dd5f21b

Browse files
committed
Deploying to master from @ de54bf6b56bc071982c4e3e2e60f4de1044a0b31 🚀
1 parent 90bced3 commit dd5f21b

File tree

7 files changed

+11
-10
lines changed

7 files changed

+11
-10
lines changed

‎docs/databases/index.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv=x-ua-compatible content="ie=edge"><link rel=stylesheet href=https://actix.rs/css/bootstrap-reboot.css><link rel=stylesheet href=https://actix.rs/css/bootstrap.css><link rel=stylesheet href=https://actix.rs/css/font-awesome.min.css><link rel=stylesheet href=https://actix.rs/css/actix.css><link rel=stylesheet href=https://actix.rs/css/highlight.css><link rel=icon href=https://actix.rs/favicon.ico title=actix><title>Databases</title></head><body><header class="navbar navbar-light navbar-toggleable-md bd-navbar"><nav class=actix-main-nav><div class="d-flex justify-content-between hidden-lg-up"><a href=https://actix.rs/ class=navbar-brand><img src=https://actix.rs/img/logo-nav.png class=align-middle alt></a>
22
<button class="navbar-toggle collapsed" type=button data-toggle=collapse data-target=#actix-main-nav aria-label="Toggle navigation" aria-controls=actix-main-nav aria-expanded=false>
33
<span class=navbar-toggler-icon></span></button></div><div class="navbar-collapse collapse" id=actix-main-nav><ul class="nav navbar-nav"><li class="nav-item hd-lg-down"><a class=navbar-brand href=https://actix.rs/><img src=https://actix.rs/img/logo-nav.png class=align-middle alt></a></li><li class=nav-item><a class=nav-link href=https://actix.rs/>Home</a></li><li class=nav-item><a class=nav-link href=https://actix.rs/docs/>Documentation</a></li><li class=nav-item><a class=nav-link href=https://actix.rs/community/>Community</a></li><li class=nav-item><a class=nav-link href=https://actix.rs/code/>Code</a></li></ul></div></nav></header><div class=actix-pageheader><div class=container><h1 class=display-4>Databases</h1></div></div><div class="container actix-docs"><div class=row><div class=col-md-3><button class="btn doctoggle" type=button data-toggle=collapse data-target=#collapsing-docnav aria-expanded=false aria-controls=collapsing-docnav>
4-
Toggle navigation</button><nav class="leftnav collapse show" id=collapsing-docnav><div><h5>Introduction</h5><div><ul class=nav><li><a href=https://actix.rs/docs/>Welcome</a></li><li><a href=https://actix.rs/docs/whatis/>What is Actix</a></li></ul></div><h5>Basics</h5><div><ul class=nav><li><a href=https://actix.rs/docs/getting-started/>Getting Started</a></li><li><a href=https://actix.rs/docs/application/>Application</a></li><li><a href=https://actix.rs/docs/server/>Server</a></li><li><a href=https://actix.rs/docs/handlers/>Handlers</a></li><li><a href=https://actix.rs/docs/extractors/>Extractors</a></li></ul></div><h5>Advanced</h5><div><ul class=nav><li><a href=https://actix.rs/docs/errors/>Errors</a></li><li><a href=https://actix.rs/docs/url-dispatch/>URL Dispatch</a></li><li><a href=https://actix.rs/docs/request/>Requests</a></li><li><a href=https://actix.rs/docs/response/>Responses</a></li><li><a href=https://actix.rs/docs/testing/>Testing</a></li><li><a href=https://actix.rs/docs/middleware/>Middleware</a></li><li><a href=https://actix.rs/docs/static-files/>Static Files</a></li></ul></div><h5>Protocols</h5><div><ul class=nav><li><a href=https://actix.rs/docs/websockets/>Websockets</a></li><li><a href=https://actix.rs/docs/http2/>HTTP/2</a></li></ul></div><h5>Patterns</h5><div><ul class=nav><li><a href=https://actix.rs/docs/autoreload/>Auto-Reloading</a></li><li class=active><a href=https://actix.rs/docs/databases/>Databases</a></li></ul></div><h5>Diagrams</h5><div><ul class=nav><li><a href=https://actix.rs/docs/http_server_init/>HTTP Server Initialization</a></li><li><a href=https://actix.rs/docs/conn_lifecycle/>Connection Lifecycle</a></li></ul></div><h5>API Documentation</h5><div><ul class=nav><li><a href=https://docs.rs/actix target=view_window>actix <span class="fa fa-external-link"></span></a></li><li><a href=https://docs.rs/actix-web/ target=view_window>actix-web <span class="fa fa-external-link"></span></a></li></ul></div></div></nav></div><div class=col-md-9><div class=actix-content><h1 id=async-options>Async Options</h1><p>We have several example projects showing use of async database adapters:</p><ul><li>SQLx: <a href=https://github.com/actix/examples/tree/master/sqlx_todo>https://github.com/actix/examples/tree/master/sqlx_todo</a></li><li>Postgres: <a href=https://github.com/actix/examples/tree/master/async_pg>https://github.com/actix/examples/tree/master/async_pg</a></li><li>SQLite: <a href=https://github.com/actix/examples/tree/master/async_db>https://github.com/actix/examples/tree/master/async_db</a></li></ul><h1 id=diesel>Diesel</h1><p>The current version of Diesel (v1) does not support asynchronous operations, so it is important to
4+
Toggle navigation</button><nav class="leftnav collapse show" id=collapsing-docnav><div><h5>Introduction</h5><div><ul class=nav><li><a href=https://actix.rs/docs/>Welcome</a></li><li><a href=https://actix.rs/docs/whatis/>What is Actix</a></li></ul></div><h5>Basics</h5><div><ul class=nav><li><a href=https://actix.rs/docs/getting-started/>Getting Started</a></li><li><a href=https://actix.rs/docs/application/>Application</a></li><li><a href=https://actix.rs/docs/server/>Server</a></li><li><a href=https://actix.rs/docs/handlers/>Handlers</a></li><li><a href=https://actix.rs/docs/extractors/>Extractors</a></li></ul></div><h5>Advanced</h5><div><ul class=nav><li><a href=https://actix.rs/docs/errors/>Errors</a></li><li><a href=https://actix.rs/docs/url-dispatch/>URL Dispatch</a></li><li><a href=https://actix.rs/docs/request/>Requests</a></li><li><a href=https://actix.rs/docs/response/>Responses</a></li><li><a href=https://actix.rs/docs/testing/>Testing</a></li><li><a href=https://actix.rs/docs/middleware/>Middleware</a></li><li><a href=https://actix.rs/docs/static-files/>Static Files</a></li></ul></div><h5>Protocols</h5><div><ul class=nav><li><a href=https://actix.rs/docs/websockets/>Websockets</a></li><li><a href=https://actix.rs/docs/http2/>HTTP/2</a></li></ul></div><h5>Patterns</h5><div><ul class=nav><li><a href=https://actix.rs/docs/autoreload/>Auto-Reloading</a></li><li class=active><a href=https://actix.rs/docs/databases/>Databases</a></li></ul></div><h5>Diagrams</h5><div><ul class=nav><li><a href=https://actix.rs/docs/http_server_init/>HTTP Server Initialization</a></li><li><a href=https://actix.rs/docs/conn_lifecycle/>Connection Lifecycle</a></li></ul></div><h5>API Documentation</h5><div><ul class=nav><li><a href=https://docs.rs/actix target=view_window>actix <span class="fa fa-external-link"></span></a></li><li><a href=https://docs.rs/actix-web/ target=view_window>actix-web <span class="fa fa-external-link"></span></a></li></ul></div></div></nav></div><div class=col-md-9><div class=actix-content><h1 id=async-options>Async Options</h1><p>We have several example projects showing use of async database adapters:</p><ul><li>SQLx: <a href=https://github.com/actix/examples/tree/master/database_interactions/sqlx_todo>https://github.com/actix/examples/tree/master/database_interactions/sqlx_todo</a></li><li>Postgres: <a href=https://github.com/actix/examples/tree/master/database_interactions/pg>https://github.com/actix/examples/tree/master/database_interactions/pg</a></li><li>SQLite: <a href=https://github.com/actix/examples/tree/master/database_interactions/basic>https://github.com/actix/examples/tree/master/database_interactions/basic</a></li></ul><h1 id=diesel>Diesel</h1><p>The current version of Diesel (v1) does not support asynchronous operations, so it is important to
55
use the <a href=https://docs.rs/actix-web/3/actix_web/web/fn.block.html><code>web::block</code></a> function to offload your database operations to the Actix runtime
66
thread-pool.</p><p>You can create action functions that correspond to all the operations your app will perform on the
77
database.</p><div class=highlight><pre class=chroma><code class=language-rust data-lang=rust><span class=k>fn</span> <span class=nf>insert_new_user</span><span class=p>(</span><span class=n>db</span>: <span class=kp>&amp;</span><span class=nc>SqliteConnection</span><span class=p>,</span><span class=w> </span><span class=n>user</span>: <span class=nc>CreateUser</span><span class=p>)</span><span class=w> </span>-&gt; <span class=nb>Result</span><span class=o>&lt;</span><span class=n>User</span><span class=p>,</span><span class=w> </span><span class=n>Error</span><span class=o>&gt;</span><span class=w> </span><span class=p>{</span><span class=w>
@@ -66,4 +66,5 @@
6666
</span><span class=w>
6767
</span><span class=w> </span><span class=nb>Ok</span><span class=p>(</span><span class=n>HttpResponse</span>::<span class=nb>Ok</span><span class=p>().</span><span class=n>json</span><span class=p>(</span><span class=n>user</span><span class=p>))</span><span class=w>
6868
</span><span class=w></span><span class=p>}</span><span class=w>
69-
</span></code></pre></div><p>That&rsquo;s it! See the full example here: <a href=https://github.com/actix/examples/tree/master/diesel>https://github.com/actix/examples/tree/master/diesel</a></p><div class=github-edit><a class="fa fa-github" href=https://github.com/actix/actix-website/tree/master/content/docs/databases.md>Edit on GitHub</a></div><div class=actix-next><b>Next up</b>: <a href=/docs/http_server_init/>HTTP Server Initialization</a></div></div></div></div></div><footer class=actix-footer><div class="text-muted actix-footer-gray d-flex justify-content-between"><div class=actix-footer-info>Copyright © 2021 The Actix Team</div><div class=actix-footer-social><a href=https://github.com/actix class=text-muted><i class="fa fa-github" aria-hidden=true></i></a></div></div></footer><script src=https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js integrity=sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7 crossorigin=anonymous></script><script src=https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js integrity=sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8 crossorigin=anonymous></script><script src=https://actix.rs/js/bootstrap.min.js></script><script src=https://actix.rs/js/actix.js></script><script type=application/javascript>var doNotTrack=false;if(!doNotTrack){(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create','UA-110322332-1','auto');ga('send','pageview');}</script></body></html>
69+
</span></code></pre></div><p>That&rsquo;s it! See the full example here:
70+
<a href=https://github.com/actix/examples/tree/master/database_interactions/diesel>https://github.com/actix/examples/tree/master/database_interactions/diesel</a></p><div class=github-edit><a class="fa fa-github" href=https://github.com/actix/actix-website/tree/master/content/docs/databases.md>Edit on GitHub</a></div><div class=actix-next><b>Next up</b>: <a href=/docs/http_server_init/>HTTP Server Initialization</a></div></div></div></div></div><footer class=actix-footer><div class="text-muted actix-footer-gray d-flex justify-content-between"><div class=actix-footer-info>Copyright © 2021 The Actix Team</div><div class=actix-footer-social><a href=https://github.com/actix class=text-muted><i class="fa fa-github" aria-hidden=true></i></a></div></div></footer><script src=https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js integrity=sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7 crossorigin=anonymous></script><script src=https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js integrity=sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8 crossorigin=anonymous></script><script src=https://actix.rs/js/bootstrap.min.js></script><script src=https://actix.rs/js/actix.js></script><script type=application/javascript>var doNotTrack=false;if(!doNotTrack){(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create','UA-110322332-1','auto');ga('send','pageview');}</script></body></html>

‎docs/http2/index.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@
3030
</span><span class=w></span><span class=p>}</span><span class=w>
3131
</span></code></pre></div><p>Upgrades to <em>HTTP/2.0</em> schema described in <a href=https://http2.github.io/http2-spec/#rfc.section.3.2>rfc section 3.2</a> is not
3232
supported. Starting <em>HTTP/2</em> with prior knowledge is supported for both clear text
33-
connection and tls connection. <a href=https://http2.github.io/http2-spec/#rfc.section.3.4>rfc section 3.4</a>.</p><blockquote><p>Check out <a href=https://github.com/actix/examples/tree/master/rustls>examples/tls</a> for a concrete example.</p></blockquote><div class=github-edit><a class="fa fa-github" href=https://github.com/actix/actix-website/tree/master/content/docs/http2.md>Edit on GitHub</a></div><div class=actix-next><b>Next up</b>: <a href=/docs/autoreload/>Auto-Reloading</a></div></div></div></div></div><footer class=actix-footer><div class="text-muted actix-footer-gray d-flex justify-content-between"><div class=actix-footer-info>Copyright © 2021 The Actix Team</div><div class=actix-footer-social><a href=https://github.com/actix class=text-muted><i class="fa fa-github" aria-hidden=true></i></a></div></div></footer><script src=https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js integrity=sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7 crossorigin=anonymous></script><script src=https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js integrity=sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8 crossorigin=anonymous></script><script src=https://actix.rs/js/bootstrap.min.js></script><script src=https://actix.rs/js/actix.js></script><script type=application/javascript>var doNotTrack=false;if(!doNotTrack){(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create','UA-110322332-1','auto');ga('send','pageview');}</script></body></html>
33+
connection and tls connection. <a href=https://http2.github.io/http2-spec/#rfc.section.3.4>rfc section 3.4</a>.</p><blockquote><p>Check out <a href=https://github.com/actix/examples/tree/master/security/rustls>examples/tls</a> for a concrete example.</p></blockquote><div class=github-edit><a class="fa fa-github" href=https://github.com/actix/actix-website/tree/master/content/docs/http2.md>Edit on GitHub</a></div><div class=actix-next><b>Next up</b>: <a href=/docs/autoreload/>Auto-Reloading</a></div></div></div></div></div><footer class=actix-footer><div class="text-muted actix-footer-gray d-flex justify-content-between"><div class=actix-footer-info>Copyright © 2021 The Actix Team</div><div class=actix-footer-social><a href=https://github.com/actix class=text-muted><i class="fa fa-github" aria-hidden=true></i></a></div></div></footer><script src=https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js integrity=sha384-3ceskX3iaEnIogmQchP8opvBy3Mi7Ce34nWjpBIwVTHfGYWQS9jwHDVRnpKKHJg7 crossorigin=anonymous></script><script src=https://cdnjs.cloudflare.com/ajax/libs/tether/1.3.7/js/tether.min.js integrity=sha384-XTs3FgkjiBgo8qjEjBk0tGmf3wPrWtA6coPfQDfFEY8AnYJwjalXCiosYRBIBZX8 crossorigin=anonymous></script><script src=https://actix.rs/js/bootstrap.min.js></script><script src=https://actix.rs/js/actix.js></script><script type=application/javascript>var doNotTrack=false;if(!doNotTrack){(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create','UA-110322332-1','auto');ga('send','pageview');}</script></body></html>

‎docs/index.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Currently, only rust-openssl has support.
3131
alpn negotiation requires enabling the feature. When enabled, HttpServer provides the bind_openssl method.
3232
[dependencies] actix-web = { version = &amp;#34;3&amp;#34;, features = [&amp;#34;openssl&amp;#34;] } openssl = { version = &amp;#34;0.10&amp;#34;, features = [&amp;#34;v110&amp;#34;] } useactix_web::{web,App,HttpRequest,HttpServer,Responder};useopenssl::ssl::{SslAcceptor,SslFiletype,SslMethod};asyncfn index(_req: HttpRequest)-&amp;gt; implResponder{&amp;#34;Hello.&amp;#34;}#[actix_web::main]asyncfn main()-&amp;gt; std::io::Result&amp;lt;()&amp;gt;{// load ssl keys // to create a self-signed temporary cert for testing: // `openssl req -x509 -newkey rsa:4096 -nodes -keyout key.</description></item><item><title>Auto-Reloading</title><link>https://actix.rs/docs/autoreload/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://actix.rs/docs/autoreload/</guid><description>Auto-Reloading Development Server During development it can be very handy to have cargo automatically recompile the code on changes. This can be accomplished very easily by using cargo-watch.
3333
cargo watch -x &amp;#39;run --bin app&amp;#39; Historical Note An old version of this page recommended using a combination of systemfd and listenfd, but this has many gotchas and was difficult to integrate properly, especially when part of a broader development workflow. We consider cargo-watch to be sufficient for auto-reloading purposes.</description></item><item><title>Databases</title><link>https://actix.rs/docs/databases/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://actix.rs/docs/databases/</guid><description>Async Options We have several example projects showing use of async database adapters:
34-
SQLx: https://github.com/actix/examples/tree/master/sqlx_todo Postgres: https://github.com/actix/examples/tree/master/async_pg SQLite: https://github.com/actix/examples/tree/master/async_db Diesel The current version of Diesel (v1) does not support asynchronous operations, so it is important to use the web::block function to offload your database operations to the Actix runtime thread-pool.
34+
SQLx: https://github.com/actix/examples/tree/master/database_interactions/sqlx_todo Postgres: https://github.com/actix/examples/tree/master/database_interactions/pg SQLite: https://github.com/actix/examples/tree/master/database_interactions/basic Diesel The current version of Diesel (v1) does not support asynchronous operations, so it is important to use the web::block function to offload your database operations to the Actix runtime thread-pool.
3535
You can create action functions that correspond to all the operations your app will perform on the database.</description></item><item><title>HTTP Server Initialization</title><link>https://actix.rs/docs/http_server_init/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://actix.rs/docs/http_server_init/</guid><description>Architecture overview Below is a diagram of HttpServer initialization, which happens on the following code
3636
#[actix_web::main]asyncfn main()-&amp;gt; std::io::Result&amp;lt;()&amp;gt;{HttpServer::new(||{App::new().</description></item><item><title>Connection Lifecycle</title><link>https://actix.rs/docs/conn_lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://actix.rs/docs/conn_lifecycle/</guid><description>Architecture overview After Server has started listening to all sockets, Accept and Worker are two main loops responsible for processing incoming client connections.
3737
Once connection accepted Application level protocol processing happens in a protocol specific Dispatcher loop spawned from Worker.

0 commit comments

Comments
 (0)