#+OPTIONS: ':nil *:t -:t ::t <:t H:3 \n:nil ^:t arch:headline #+OPTIONS: author:t broken-links:nil c:nil creator:nil #+OPTIONS: d:(not "LOGBOOK") date:t e:t email:nil f:t inline:t num:t #+OPTIONS: p:nil pri:nil prop:nil stat:t tags:t tasks:t tex:t #+OPTIONS: timestamp:t title:t toc:t todo:t |:t #+TITLE: rust, rocket and diesel #+SUBTITLE: web apps with rust #+DESCRIPTION: An introduction to rust, rocket and diesel. #+KEYWORDS: rust rocket diesel #+AUTHOR: \href{mailto:rocket-presentation@onders.org}{finga} #+EMAIL: rocket-presentation@onders.org #+LANGUAGE: en #+SELECT_TAGS: export #+EXCLUDE_TAGS: noexport #+CREATOR: Emacs 26.1 (Org mode 9.1.9) #+OPTIONS: H:2 #+LATEX_CLASS: beamer #+LATEX_CLASS_OPTIONS: [aspectration=1610] # #+LATEX_HEADER: \hypersetup{colorlinks=true,linkcolor=gray} #+LATEX_HEADER: \hypersetup{colorlinks=true,linkcolor=black,urlcolor=gray} #+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_act(Act) %4BEAMER_col(Col) %8BEAMER_opt(Opt) #+BEAMER_THEME: Frankfurt #+BEAMER_COLOR_THEME: seagull #+BEAMER_FONT_THEME: #+BEAMER_INNER_THEME: #+BEAMER_OUTER_THEME: #+BEAMER_HEADER: \institute[INST]{\href{https://cccsbg.at}{cccsbg}} * Rust ** What is Rust? #+BEGIN_CENTER #+LaTeX:\includegraphics[width = 0.65\textwidth]{img/Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg} #+END_CENTER *** Rust: the language - About 10 years old (2010) - Memory safe without gcing, optional ref counting - Ownership, lifetimes, traits - Variables are immutable by default and can be shadowed - Performance of idiomatic Rust is comparable to the performance of idiomatic cpp ** Where to get infos *** Chat (Discord) - [[https://discord.gg/rust-lang][The Rust Programming Language]] - [[https://discord.com/invite/tcbkpyQ][The Rust Programming Language Community Server]] *** Some links - [[https://doc.rust-lang.org/book/][The rust book]] (~$ rustup docs --book~), [[https://doc.rust-lang.org/rust-by-example/][Rust by example]] - [[https://doc.rust-lang.org/std/][The Rust Standard Library]] - [[https://cheats.rs][cheats.rs]] - [[https://cargo.io][cargo.io]]/[[https://lib.rs][lib.rs]] ** What are we going to use? *** Definitely - [[https://rocket.rs][rocket]] - [[https://diesel.rs][diesel]] - log *** Maybe - anyhow - lettre - sha3 - serde - chrono ** How to install *** Install Rust #+BEGIN_SRC sh $ curl --proto '=https' --tlsv1.2 -sSf \ https://sh.rustup.rs | sh #+END_SRC *** Install nightly Rust #+BEGIN_SRC sh $ rustup toolchain install nightly #+END_SRC *** Install rustfmt #+BEGIN_SRC sh $ rustup component add rustfmt #+END_SRC *** Install clippy (Linter and static code analysis) #+BEGIN_SRC sh $ rustup component add clippy #+END_SRC * Rocket ** What is Rocket? * Diesel ** What is an ORM? ** What is diesel capable of? * Lets code something * Conclusion ** What did we do? ** What did you hopefully learn! ** Some projects - [[https://git.onders.org/finga/ldap0r][ldap0r]] (~300 SloC) - [[https://git.onders.org/finga/filerly][filerly]] (wip) ** The End #+BEGIN_CENTER #+LaTeX:\includegraphics[width = 0.3\textwidth]{img/goodbye.jpg} \Huge Thanks for your attention!!1! This is the end.. #+END_CENTER