Mehul Patel,@rowdymehul
Reference : @f_jimenez
* Engineer @ Zimbra
* Technical Evangelist
* Auth0 Ambassador
* Mozilla Reps Mentor
* CAC @ Mozilla
* GDG Nashik Organizer
* Rust Hacks @rusthack
@rowdymehul
by @linclark
Rust is the Most Loved Language by Developers
Organizations running Rust in production.
System programming language that has great control like C/C++, delivers productivity like in Python and is super safe
Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety.
Graydon Hoare's personal project started in 2005
-
Sponsored (not owned) by Mozilla since 2009
-
Rust 1.0 since May 2015
-
Current stable version 1.35
-
6 weeks release cycle
Must be this tall to write multi-threaded code
by David Baron
State of art programming language
Solves a lot of common system programming bugs
Cargo: Rust Package manager
Improving your toolkit
Self-learning
It's FUN ...
Rust is new enough that you can write useful stuff that would have already existed in other languages
It gives a relatively familiar tool to the modern C++ developers, but in the much more consistent and reliable ways.
It is low-level enough that you take account of most resources.
It's more like C++ and
cargo is awesome. Managing crates just works as intended, which makes a whole lot of troubles you may have in other languages just vanish with a satisfying poof.
Rust is a good choice when you’d choose C++. You can also say, “Rust is a systems programming language that pursuing the trifecta: safe, concurrent, and fast.” I would say, Rust is an ownership-oriented programming language.
Just follow these rules perfectly,
you’re smart.
C/C++
Inspired by @qedunham
Wait a minute,
I’ll take care of it.
Java and others
Hack without fear!
Rust
Choose all three!
Zero-cost abstractions
-
Memory safety without garbage collector
-
Threads without data races
Ownership
Mutable borrow
Immutable borrow
fn f(x: Type) {...}
fn f(x: &mut Type) {...}
fn f(x: &Type) {...}
Inspired by Jeena Lee and @lastontheboat
curl https://sh.rustup.rs -sSf | sh
-> Update to latest version:
rustup update stable
-> Update the rustup tool to the latest version
rustup self update
-> Install the nightly toolkit version of the Rust compiler:
rustup install nightly
-> Change the default version of the Rust compiler to nightly version:
rustup default nightly
pub fn add_two(a: i32) -> i32 {
a + 2
}
#[test]
fn it_works() {
assert_eq!(add_two(2), 4);
}
1. Serverless
2. Authentication & Authorization
3. JWT
4. Deployment
Serverless, is an execution model where the cloud provider is responsible for executing a piece of code by dynamically allocating the resources. The code is typically run inside stateless containers that can be triggered by a variety of events including http requests, database events, queuing services, monitoring alerts, file uploads, scheduled events (cron jobs), etc. The code that is sent to the cloud provider for execution is usually in the form of a function. Hence serverless is sometimes referred to as “Functions as a Service” or “FaaS”.
credits: DZone
credits: DZone
source: dadario.com.br
source: dadario.com.br
The header is a JSON Object usually consisting of the type( typ ) , which is JWT, and the algorithm used for encrypting the JWT (alg ):
{
"alg": "HS256",
"typ": "JWT"
}
The Payload is a JSON object that consists of user defined attributes ( called public claims ) . Some attributes are defined in the standard ( these are called reserved claims ).
{
// reserved claim
"iss": "https://myapi.com",
// public claim
"user": "rowdymehul"
}
The Signature is the encoded header and payload, signed with a secret.
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
This accomplishes several tasks at once, including:
A finished token looks like [encoded header].[encoded payload].[signature] :
Image Source: StackOverflow
Image source: medium.com
An open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information on other websites but without giving them the passwords.
Resource Owner: the entity that can grant access to a protected resource. Typically this is the end-user.
Resource Server: the server hosting the protected resources. This is the API you want to access.
Client: the app requesting access to a protected resource on behalf of the Resource Owner.
/**
* @tru context {WebtaskContext}
*/
module.exports = function(context, cb) {
cb(null, { hello: context.query.name || 'TRU , Open Source Club' });
};
General JWT Resources
jwt.io
JWT Handbook
http://bit.ly/jwt-book
WebTask
webtask.io
facebook.com/therowdymehul
@rowdymehul
@rowdymehul
https://in.linkedin.com/in/rowdymehul
way2mehul@gmail.com
Source: giphy.com