Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Duke University

Python and Rust with Linux Command Line Tools

Duke University via Coursera

Overview

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.

Syllabus

  • Introduction to Command-line tools with Python and Rust
    • This week, you will learn how to create a basic command-line tool in Python and Rust, handle command-line arguments and options, organize code into modules and packages, and implement logging and error handling. You will apply these skills by developing a command-line tool that accepts user input, uses modules to organize code, logs output, and handles errors gracefully. The tool will demonstrate your ability to build a functional CLI program using best practices covered this week.
  • Advanced Command-line tool development
    • This week, you will learn how to create command-line tools with subcommands, parse complex arguments, and incorporate environment variables in both Rust and Python. You will apply these skills by developing a fully-featured command-line tool that can handle subcommands, arguments, and environment variables in a user-friendly way. The tool will demonstrate your proficiency in organizing functionality, flexibly handling input, and integrating with the environment in Rust and Python.
  • Using Rust with Python
    • his week, you will learn how to explore advanced PyO3 features such as handling exceptions, custom conversions, and utilizing attributes. You'll also delve into the best practices for mixing Rust and Python, and understand how Rust can be leveraged for CPU-bound operations in Python. Furthermore, you'll begin the process of converting Python scripts into command-line tools using Rust, and familiarize yourself with error handling and logging in Rust CLI applications. To apply what you've learned, you'll be assessed through a series of hands-on exercises, including: Implementing a Rust function with custom exception handling that can be called from Python. Converting a simple Python script into a Rust CLI tool, focusing on the first part of the conversion process. Writing a brief case study analysis on how Rust can optimize CPU-bound operations in a given Python project. By the end of this week, you'll have a solid understanding of advanced Rust and Python integration techniques.
  • Rust AWS Lambda
    • This week, you will learn how to create, deploy, and manage AWS Lambda functions using Rust, leveraging the power and performance of the language for serverless architecture, and applying it by building a real-world Lambda function as a part of a distributed application.

Taught by

Noah Gift and Alfredo Deza

Reviews

Start your review of Python and Rust with Linux Command Line Tools

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.