Introduction to Command-line tools with Python and Rust-About the course
Meet your instructor: Alfredo Deza
()
Meet your instructor: Noah Gift
()
About this course
()
Course structure and discussion etiquette
Introduction to Command-line tools with Python and Rust-Getting started with Command-line tools in Python
Introduction
()
Setting up your development environment for Command-line tool development
()
Your first Command-line tool in Python
()
Working with user input: arguments and options
()
Expanding your tool's functionality with modules and libraries
()
Managing output: logging, errors, and exceptions
()
Optimizing your Command-line tools: performance and best practices
()
A basic Python CLI example
External lab: build a basic Python CLI
Introduction to the Click framework
Introduction to Command-line tools with Python and Rust-Getting started with Command-line tools in Rust
Introduction
()
Setting up your development environment for Command-line development
()
Your first Command-line tool in Rust
()
Introduction to building a Rust CLI
External lab: Setup your environment
Working with user input: arguments and options
()
Expanding your tool's functionality with modules and libraries
()
Managing output: logging, errors, and panics
()
Optimizing your Command-line tools: Performance and best practices
()
External lab: build a basic Rust CLI
Introduction to Command-line tools with Python and Rust-Growing your project with modules
Introduction
()
Organizing your project with modules and packages in Python
()
Working with dependencies and libraries in Python
()
The Python Package Index
()
External lab: Create a Python Package Index account
The Python Packaging Index
Creating and using modules in Rust
()
Advanced module usage in Rust
()
Working with dependencies and libraries in Rust
()
Using crates.io for Rust
()
Explore modules, packages, and third-party Rust crates
External lab: update a Rust CLI to use modules
End of week reflections
Advanced Command-line tool development-Developing complex Command-line tools
Introduction
()
Creating a Command-line tool with sub-commands in Rust
()
Adding subcommands with Clap
Creating a Command-line tool with sub-commands in Python
()
Parsing complex Command-line arguments in Rust
()
Parsing complex Command-line arguments in Python
()
Integrating Linux commands with Click
Adding environment variables to your Command-line tool in Rust
()
External lab: Add environment variables to your Command-line tool in Rust
External lab: Build a timestamp CLI tool in Rust
Adding environment variables to your Command-line tool in Python
()
External lab: Build a JSON formatter CLI in Python
Advanced Command-line tool development-Packaging and distributing your tool
Introduction
()
Creating a package for your Command-line tool in Rust
()
Creating a package for your Command-line tool in Python
()
Alternatives in Python packaging
()
Release your Rust application to crates.io
()
Releasing in Rust
External lab: Package and distribute your Rust CLI
Release to the Python Package Index (PyPI)
()
Containerizing your application
()
Python Packaging User Guide
External lab: Package and distribute your Python CLI
Advanced Command-line tool development-Logging and error handling strategies
Introduction
()
Implementing basic logging in Rust
()
Implementing basic logging in Python
()
Using different types of logs in Rust
()
Using different types of logs in Python
()
Handling errors in Rust
()
Handling errors in Python
()
External lab: Enhance a Python application with logging
Adding logging and tracing in Rust
External lab: Enhance a Rust application with logging
End of week reflections
Using Rust with Python-Introduction to Rust and Python Integration & PyO3 Basics
Introduction to Rust and Python Integration: Why and When?
()
Getting Started with PyO3: Installation and Configuration
()
Creating a Basic Rust Library with PyO3
()
Data Types and Conversions: Rust to Python
()
Understanding Rust's Ownership Model in PyO3
()
Diagram PyO3 Project
()
PyO3 User Guide
External Lab: Writing Calculator CLI with Python Fire and Rust
Rust Ownership
Writing Calculator CLI with Python Fire and Rust
()
Using Rust with Python-Advanced Rust and Python Mixing Techniques
Exploring Advanced PyO3 Features: Exceptions, Conversions, Attributes.
()
Using Py03 Exceptions
()
Call Python from Rust
()
Run Embedded Python in Rust
()
Embedded Python in Rust CLI with Clap Diagram
()
Embedded Python in Rust CLI with Clap
()
Enhance Embedded Python in Rust CLI with Clap test.
()
External Lab: Run Embedded Python in Rust
PyO3 Exceptions
Using Rust with Python-Python and Rust Tools Ecosystem
Rust built Python tools
()
Using Rust ruff to lint python code
()
Using Polars with Python and Rust
()
Building a Polars CLI in Rust
()
Building a Polars CLI Test for Rust
()
Building Polars Clap Integration Test
()
Building Benchmarking
()
Testing Clap
Criterion
External Lab: Building a Polars CLI in Rust
Final Week-Reflection
Rust AWS Lambda-Getting Started with Rust AWS Lambda and Serverless
Introduction to Serverless and AWS Lambda
()
Walk through Rust Firecracker Project
()
Setting up VSCode AWS Toolkit and CodeWhisperer for Rust
()
Introduction to Cargo Lambda
()
Rust Cost Advantage AWS Lambda
()
Using the AWS Lambda Console
()
Using the Step Functions Console
()
Invoking Step Functions from AWS CLI
()
Cargo Lambda
Firecracker
AWS Toolkit for Visual Studio Code
External Lab: Cargo Lambda Hello World
Rust AWS Lambda-Advanced Techniques with Rust and AWS Lambda
Building a Rust AWS Lambda Add Function
()
Building a Rust AWS Lambda Divide by Two Function
()
Invoking AWS Step Function from CLI
()
Building Chainable AWS Step Functions with Rust
()
Serverless MLOPs with EFS mounted in AWS Lambda
()
Using Rust AWS Lambda Function URLS
()
Saving money with arm64 Rust AWS Lambdas
()
External Lab: Building a Rust AWS Lambda Add Function
Lambda instruction set architectures (ARM/x86)
Lambda function URLs
Using Amazon EFS with Lambda
Rust AWS Lambda-Building a Polars Rust AWS Lambda Solution
Polars Rust AWS Lambda
()
Build and Deploy Polars Rust AWS Lambda
()
Using AWS Console with deployed Polars Rust AWS Lambda
()
Analyzing Rust AWS Lambda code with CodeWhisperer and AWS Toolkit
()
AWS Lambda Function URLs
()
Build and Deploy Polars Rust AWS Lambda Function URLs
()
Polars User Guide
AWS CodeWhisperer User Guide
TPCH Benchmark
External Lab: Build and Deploy Polars Rust AWS Lambda Function URLs
Final Week-Reflection