- Segurança e Performance
- Concorrência
Ferramentas Principais
- Rustup: Ferramenta de linha de comando para gerenciar instalações de Rust. Facilita a instalação e atualização do Rust, bem como a alternância entre diferentes versões de Rust.
- rustc: O compilador de Rust. Compila o código fonte em binários executáveis, garantindo que o código esteja livre de erros de memória comuns.
Gestão de Projetos e Dependências
-
Cargo: Sistema de construção e gerenciador de pacotes de Rust. Simplifica a criação, compilação e gerenciamento de dependências em projetos Rust.
-
Cargo.toml: Arquivo de configuração usado pelo Cargo para especificar as dependências do projeto, configurações de compilação e metadados do projeto. Centraliza todas as informações do projeto em um único lugar.
-
Crates: Pacotes de bibliotecas ou programas Rust que podem ser compartilhados e reutilizados. Promove a reutilização de código e a modularidade, permitindo que os desenvolvedores aproveitem bibliotecas de terceiros.
Processo de Compilação
- Etapas do Processo:
Prós do Rust
- Segurança de Memória: Graças ao sistema de propriedade do Rust.
- Performance: Comparable a C/C++.
- Concorrência: Seguro e eficiente devido ao modelo de concorrência do Rust.
Contras do Rust
- Curva de Aprendizado: Mais íngreme comparado a Python e JavaScript.
- Ecosistema: Menos maduro em algumas áreas específicas comparado a Python (ex. Data Science) e JavaScript (ex. Desenvolvimento Web).
Comparação Prática
Python: - Pros: Facilidade de uso, vasta biblioteca padrão, excelente para prototipagem e desenvolvimento rápido. - Contras: Performance inferior, não tão seguro em termos de memória. JavaScript:
- Pros: Dominância no desenvolvimento web, enorme ecossistema e comunidade.
- Contras: Problemas de segurança, inconsistências e peculiaridades da linguagem.
Exemplo de Aplicações Típicas
- Rust: Sistemas embarcados, software de sistema, blockchain, aplicações de alta performance.
- Python: Ciência de dados, aprendizado de máquina, automação de tarefas, desenvolvimento web (Django, Flask).
- JavaScript: Aplicações web front-end e back-end (Node.js), desenvolvimento de aplicativos móveis (React Native).
Livros e Tutoriais:
- NearX
- "The Rust Programming Language" (também conhecido como "The Book").
- Comprehensive Rust 🦀
- Rustlings.
- Rust by Examples.
Comunidade:
cargo new learn
- variaveis
- tipos
- if, else
- for, while, loop
- fn
- struct, enum, impl, trait
rustup target add wasm32-unknown-unknown
cargo install --locked soroban-cli --version 21.0.0-rc.1
soroban network add local \
--global \
--rpc-url "http://localhost:8000/soroban/rpc" \
--network-passphrase "Standalone Network ; February 2017"
soroban keys generate --global bob --network local
soroban contract init soroban-smartcontracts
soroban contract build
cargo build --target wasm32-unknown-unknown --release
cargo test
soroban contract deploy \
--wasm target/wasm32-unknown-unknown/release/hello_world.wasm \
--source bob \
--network local
soroban contract invoke \
--id <contract_id> \
--source bob \
--network local \
-- \
hello \
--to Lucas