Coursera
Coursera Logo

Python and Rust with Linux Command Line Tools 

  • Offered byCoursera

Python and Rust with Linux Command Line Tools
 at 
Coursera 
Overview

Duration

19 hours

Total fee

Free

Mode of learning

Online

Official Website

Explore Free Course External Link Icon

Credential

Certificate

Python and Rust with Linux Command Line Tools
 at 
Coursera 
Highlights

  • Earn a certificate from Duke University
  • Add to your LinkedIn profile
  • 4 quizzes
Details Icon

Python and Rust with Linux Command Line Tools
 at 
Coursera 
Course details

What are the course deliverables?
  • What you'll learn
  • Build powerful command line tools in Rust and Python
  • Use Python with Rust for building powerful tools
More about this course
  • This course is designed for beginners and those with some programming experience in either Python or Rust that want to implement automation and utilities in the command-line. Although no prior knowledge of Python or Rust is required, basic programming knowledge is recommended as well as some familiarity with the command-line interface (CLI). Throughout the course, you will gain a solid foundation for building efficient, reliable, and high-performance command-line tools that can help you automate tasks for data engineering, systems engineering, and DevOps. By completing this course, you will have the skills to develop and distribute sophisticated and efficient command-line tools.

Python and Rust with Linux Command Line Tools
 at 
Coursera 
Curriculum

Introduction to Command-line tools with Python and Rust

Meet your instructor: Alfredo Deza

Meet your instructor: Noah Gift

About this course

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

Introduction

Setting up your development environment for Command-line development

Your first Command-line tool in Rust

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

Introduction

Organizing your project with modules and packages in Python

Working with dependencies and libraries in Python

The Python Package Index

Creating and using modules in Rust

Advanced module usage in Rust

Working with dependencies and libraries in Rust

Using crates.io for Rust

Course structure and discussion etiquette

A basic Python CLI example

External lab: build a basic Python CLI

Introduction to the Click framework

Introduction to building a Rust CLI

External lab: Setup your environment

External lab: build a basic Rust CLI

External lab: Create a Python Package Index account

The Python Packaging Index

Explore modules, packages, and third-party Rust crates

External lab: update a Rust CLI to use modules

End of week reflections

CLI basics Quiz

Meet and greet (optional)

Simple Command-line tool in Python

Advanced Command-line tool development

Introduction

Creating a Command-line tool with sub-commands in Rust

Creating a Command-line tool with sub-commands in Python

Parsing complex Command-line arguments in Rust

Parsing complex Command-line arguments in Python

Adding environment variables to your Command-line tool in Rust

Adding environment variables to your Command-line tool in Python

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

Release to the Python Package Index (PyPI)

Containerizing your application

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

Adding subcommands with Clap

Integrating Linux commands with Click

External lab: Add environment variables to your Command-line tool in Rust

External lab: Build a timestamp CLI tool in Rust

External lab: Build a JSON formatter CLI in Python

Releasing in Rust

External lab: Package and distribute your Rust CLI

Python Packaging User Guide

External lab: Package and distribute your Python CLI

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

Advanced CLI development

Using Rust with Python

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

Writing Calculator CLI with Python Fire and Rust

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.

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

PyO3 User Guide

External Lab: Writing Calculator CLI with Python Fire and Rust

Rust Ownership

External Lab: Run Embedded Python in Rust

PyO3 Exceptions

Testing Clap

Criterion

External Lab: Building a Polars CLI in Rust

Final Week-Reflection

Using Rust with Python

Rust AWS Lambda

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

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

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

Cargo Lambda

Firecracker

AWS Toolkit for Visual Studio Code

External Lab: Cargo Lambda Hello World

External Lab: Building a Rust AWS Lambda Add Function

Lambda instruction set architectures (ARM/x86)

Lambda function URLs

Using Amazon EFS with Lambda

Polars User Guide

AWS CodeWhisperer User Guide

TPCH Benchmark

External Lab: Build and Deploy Polars Rust AWS Lambda Function URLs

Final Week-Reflection

Rust AWS Lambda

Other courses offered by Coursera

– / –
3 months
Beginner
– / –
20 hours
Beginner
– / –
2 months
Beginner
– / –
3 months
Beginner
View Other 6715 CoursesRight Arrow Icon
qna

Python and Rust with Linux Command Line Tools
 at 
Coursera 

Student Forum

chatAnything you would want to ask experts?
Write here...