• For Individuals
  • For Businesses
  • For Universities
  • For Governments
Coursera
Online Degrees
Careers
Log In
Join for Free
Coursera
Duke University
Python and Rust with Linux Command Line Tools
  • About
  • Outcomes
  • Modules
  • Recommendations
  • Testimonials
  1. Browse
  2. Computer Science
  3. Software Development
Duke University

Python and Rust with Linux Command Line Tools

This course is part of Rust Programming Specialization

Noah Gift
Alfredo Deza

Instructors: Noah Gift

Instructors

Noah Gift
Noah Gift
Duke University
40 Courses•183,213 learners
Alfredo Deza
Alfredo Deza
Duke University
29 Courses•140,570 learners

1,875 already enrolled

Included with Coursera Plus

•Learn more
4 modules
Gain insight into a topic and learn the fundamentals.
5.0

(13 reviews)

Intermediate level

Recommended experience

Recommended experience

Intermediate level

Beginner experience in programming languages, Git for version control, and using a text editor for development.

20 hours to complete
3 weeks at 6 hours a week
Flexible schedule
Learn at your own pace

4 modules
Gain insight into a topic and learn the fundamentals.
5.0

(13 reviews)

Intermediate level

Recommended experience

Recommended experience

Intermediate level

Beginner experience in programming languages, Git for version control, and using a text editor for development.

20 hours to complete
3 weeks at 6 hours a week
Flexible schedule
Learn at your own pace
  • About
  • Outcomes
  • Modules
  • Recommendations
  • Testimonials

What you'll learn

  • Build powerful command line tools in Rust and Python

  • Use Python with Rust for building powerful tools

Skills you'll gain

  • Amazon Web Services
  • Software Development Tools
  • Rust (Programming Language)
  • Linux Commands
  • Maintainability
  • Debugging
  • Serverless Computing
  • Program Development
  • Application Deployment
  • Performance Tuning
  • Software Testing
  • Python Programming
  • Command-Line Interface
  • Unix Commands
  • System Programming

Details to know

Shareable certificate

Add to your LinkedIn profile

Assessments

4 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

Learn more about Coursera for Business
 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

Build your subject-matter expertise

This course is part of the Rust Programming Specialization
When you enroll in this course, you'll also be enrolled in this Specialization.
  • Learn new concepts from industry experts
  • Gain a foundational understanding of a subject or tool
  • Develop job-relevant skills with hands-on projects
  • Earn a shareable career certificate

There are 4 modules in 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.

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.

What's included

25 videos13 readings1 assignment1 discussion prompt1 ungraded lab

25 videos•Total 173 minutes
  • Meet your instructor: Alfredo Deza•1 minute•Preview module
  • Meet your instructor: Noah Gift•0 minutes
  • About this course•1 minute
  • Introduction•1 minute
  • Setting up your development environment for Command-line tool development•7 minutes
  • Your first Command-line tool in Python•12 minutes
  • Working with user input: arguments and options•12 minutes
  • Expanding your tool's functionality with modules and libraries•8 minutes
  • Managing output: logging, errors, and exceptions•10 minutes
  • Optimizing your Command-line tools: performance and best practices•8 minutes
  • Introduction•1 minute
  • Setting up your development environment for Command-line development•11 minutes
  • Your first Command-line tool in Rust•12 minutes
  • Working with user input: arguments and options•9 minutes
  • Expanding your tool's functionality with modules and libraries•7 minutes
  • Managing output: logging, errors, and panics•11 minutes
  • Optimizing your Command-line tools: Performance and best practices•9 minutes
  • Introduction•1 minute
  • Organizing your project with modules and packages in Python•12 minutes
  • Working with dependencies and libraries in Python•7 minutes
  • The Python Package Index•4 minutes
  • Creating and using modules in Rust•4 minutes
  • Advanced module usage in Rust•3 minutes
  • Working with dependencies and libraries in Rust•5 minutes
  • Using crates.io for Rust•4 minutes
13 readings•Total 130 minutes
  • Course structure and discussion etiquette•10 minutes
  • Report a problem with the course•10 minutes
  • A basic Python CLI example•10 minutes
  • External lab: build a basic Python CLI•10 minutes
  • Introduction to the Click framework•10 minutes
  • Introduction to building a Rust CLI•10 minutes
  • External lab: Setup your environment•10 minutes
  • External lab: build a basic Rust CLI•10 minutes
  • External lab: Create a Python Package Index account•10 minutes
  • The Python Packaging Index•10 minutes
  • Explore modules, packages, and third-party Rust crates•10 minutes
  • External lab: update a Rust CLI to use modules•10 minutes
  • End of week reflections•10 minutes
1 assignment•Total 30 minutes
  • CLI basics Quiz•30 minutes
1 discussion prompt•Total 10 minutes
  • Meet and greet (optional)•10 minutes
1 ungraded lab•Total 60 minutes
  • Simple Command-line tool in Python•60 minutes

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.

What's included

21 videos13 readings1 assignment

21 videos•Total 136 minutes
  • Introduction•1 minute•Preview module
  • Creating a Command-line tool with sub-commands in Rust•11 minutes
  • Creating a Command-line tool with sub-commands in Python•9 minutes
  • Parsing complex Command-line arguments in Rust•9 minutes
  • Parsing complex Command-line arguments in Python•11 minutes
  • Adding environment variables to your Command-line tool in Rust•4 minutes
  • Adding environment variables to your Command-line tool in Python•5 minutes
  • Introduction•2 minutes
  • Creating a package for your Command-line tool in Rust•7 minutes
  • Creating a package for your Command-line tool in Python•7 minutes
  • Alternatives in Python packaging•4 minutes
  • Release your Rust application to crates.io•8 minutes
  • Release to the Python Package Index (PyPI)•4 minutes
  • Containerizing your application•4 minutes
  • Introduction•2 minutes
  • Implementing basic logging in Rust•6 minutes
  • Implementing basic logging in Python•7 minutes
  • Using different types of logs in Rust•6 minutes
  • Using different types of logs in Python•5 minutes
  • Handling errors in Rust•9 minutes
  • Handling errors in Python•7 minutes
13 readings•Total 130 minutes
  • Adding subcommands with Clap•10 minutes
  • Integrating Linux commands with Click•10 minutes
  • External lab: Add environment variables to your Command-line tool in Rust•10 minutes
  • External lab: Build a timestamp CLI tool in Rust•10 minutes
  • External lab: Build a JSON formatter CLI in Python•10 minutes
  • Releasing in Rust•10 minutes
  • External lab: Package and distribute your Rust CLI•10 minutes
  • Python Packaging User Guide•10 minutes
  • External lab: Package and distribute your Python CLI•10 minutes
  • External lab: Enhance a Python application with logging•10 minutes
  • Adding logging and tracing in Rust•10 minutes
  • External lab: Enhance a Rust application with logging•10 minutes
  • End of week reflections•10 minutes
1 assignment•Total 30 minutes
  • Advanced CLI development•30 minutes

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.

What's included

21 videos9 readings1 assignment

21 videos•Total 91 minutes
  • Introduction to Rust and Python Integration: Why and When?•5 minutes•Preview module
  • Getting Started with PyO3: Installation and Configuration•4 minutes
  • Creating a Basic Rust Library with PyO3•4 minutes
  • Data Types and Conversions: Rust to Python•3 minutes
  • Understanding Rust's Ownership Model in PyO3•4 minutes
  • Diagram PyO3 Project•3 minutes
  • Writing Calculator CLI with Python Fire and Rust•3 minutes
  • Exploring Advanced PyO3 Features: Exceptions, Conversions, Attributes.•2 minutes
  • Using Py03 Exceptions•4 minutes
  • Call Python from Rust•5 minutes
  • Run Embedded Python in Rust•4 minutes
  • Embedded Python in Rust CLI with Clap Diagram•3 minutes
  • Embedded Python in Rust CLI with Clap•4 minutes
  • Enhance Embedded Python in Rust CLI with Clap test.•4 minutes
  • Rust built Python tools•3 minutes
  • Using Rust ruff to lint python code•5 minutes
  • Using Polars with Python and Rust•4 minutes
  • Building a Polars CLI in Rust•4 minutes
  • Building a Polars CLI Test for Rust•4 minutes
  • Building Polars Clap Integration Test•3 minutes
  • Building Benchmarking•5 minutes
9 readings•Total 90 minutes
  • PyO3 User Guide•10 minutes
  • External Lab: Writing Calculator CLI with Python Fire and Rust•10 minutes
  • Rust Ownership•10 minutes
  • External Lab: Run Embedded Python in Rust•10 minutes
  • PyO3 Exceptions•10 minutes
  • Testing Clap•10 minutes
  • Criterion•10 minutes
  • External Lab: Building a Polars CLI in Rust•10 minutes
  • Final Week-Reflection•10 minutes
1 assignment•Total 30 minutes
  • Using Rust with Python•30 minutes

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.

What's included

21 videos14 readings1 assignment1 ungraded lab

21 videos•Total 88 minutes
  • Introduction to Serverless and AWS Lambda•3 minutes•Preview module
  • Walk through Rust Firecracker Project•2 minutes
  • Setting up VSCode AWS Toolkit and CodeWhisperer for Rust•3 minutes
  • Introduction to Cargo Lambda•3 minutes
  • Rust Cost Advantage AWS Lambda•3 minutes
  • Using the AWS Lambda Console•5 minutes
  • Using the Step Functions Console•3 minutes
  • Invoking Step Functions from AWS CLI•3 minutes
  • Building a Rust AWS Lambda Add Function•6 minutes
  • Building a Rust AWS Lambda Divide by Two Function•4 minutes
  • Invoking AWS Step Function from CLI•3 minutes
  • Building Chainable AWS Step Functions with Rust•6 minutes
  • Serverless MLOPs with EFS mounted in AWS Lambda•9 minutes
  • Using Rust AWS Lambda Function URLS•4 minutes
  • Saving money with arm64 Rust AWS Lambdas•2 minutes
  • Polars Rust AWS Lambda•3 minutes
  • Build and Deploy Polars Rust AWS Lambda•6 minutes
  • Using AWS Console with deployed Polars Rust AWS Lambda•4 minutes
  • Analyzing Rust AWS Lambda code with CodeWhisperer and AWS Toolkit•2 minutes
  • AWS Lambda Function URLs•1 minute
  • Build and Deploy Polars Rust AWS Lambda Function URLs•3 minutes
14 readings•Total 140 minutes
  • Key Terms•10 minutes
  • Cargo Lambda•10 minutes
  • Firecracker•10 minutes
  • AWS Toolkit for Visual Studio Code•10 minutes
  • External Lab: Cargo Lambda Hello World •10 minutes
  • External Lab: Building a Rust AWS Lambda Add Function•10 minutes
  • Lambda instruction set architectures (ARM/x86)•10 minutes
  • Lambda function URLs•10 minutes
  • Using Amazon EFS with Lambda•10 minutes
  • Polars User Guide•10 minutes
  • AWS CodeWhisperer User Guide•10 minutes
  • TPCH Benchmark•10 minutes
  • External Lab: Build and Deploy Polars Rust AWS Lambda Function URLs•10 minutes
  • Final Week-Reflection•10 minutes
1 assignment•Total 30 minutes
  • Rust AWS Lambda•30 minutes
1 ungraded lab•Total 60 minutes
  • Running Cargo Lambda•60 minutes

Earn a career certificate

Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.

Instructors

Noah Gift
Noah Gift
Duke University
40 Courses•183,213 learners

Instructors

Noah Gift
Noah Gift
Duke University
40 Courses•183,213 learners
Alfredo Deza
Alfredo Deza
Duke University
29 Courses•140,570 learners

Offered by

Duke University

Offered by

Duke University

Duke University has about 13,000 undergraduate and graduate students and a world-class faculty helping to expand the frontiers of knowledge. The university has a strong commitment to applying knowledge in service to society, both near its North Carolina campus and around the world.

Explore more from Software Development

  • Status: Free Trial
    Free Trial
    E

    Edureka

    Programming with Rust

    Specialization

  • D

    Duke University

    Python Scripting

    Guided Project

  • Status: Free Trial
    Free Trial
    D

    Duke University

    Rust Fundamentals

    Course

  • Status: Free Trial
    Free Trial
    D

    Duke University

    Rust Programming

    Specialization

Why people choose Coursera for their career

Felipe M.
Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Coursera Plus

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Learn more

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Explore degrees

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Learn more

Frequently asked questions

Access to lectures and assignments depends on your type of enrollment. If you take a course in audit mode, you will be able to see most course materials for free. To access graded assignments and to earn a Certificate, you will need to purchase the Certificate experience, during or after your audit. If you don't see the audit option:

  • The course may not offer an audit option. You can try a Free Trial instead, or apply for Financial Aid.

  • The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.

When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

If you subscribed, you get a 7-day free trial during which you can cancel at no penalty. After that, we don’t give refunds, but you can cancel your subscription at any time. See our full refund policyOpens in a new tab.

Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.

More questions

Visit the learner help center

Financial aid available,

Coursera Footer

Technical Skills

  • ChatGPT
  • Coding
  • Computer Science
  • Cybersecurity
  • DevOps
  • Ethical Hacking
  • Generative AI
  • Java Programming
  • Python
  • Web Development

Analytical Skills

  • Artificial Intelligence
  • Big Data
  • Business Analysis
  • Data Analytics
  • Data Science
  • Financial Modeling
  • Machine Learning
  • Microsoft Excel
  • Microsoft Power BI
  • SQL

Business Skills

  • Accounting
  • Digital Marketing
  • E-commerce
  • Finance
  • Google
  • Graphic Design
  • IBM
  • Marketing
  • Project Management
  • Social Media Marketing

Career Resources

  • Essential IT Certifications
  • High-Income Skills to Learn
  • How to Get a PMP Certification
  • How to Learn Artificial Intelligence
  • Popular Cybersecurity Certifications
  • Popular Data Analytics Certifications
  • What Does a Data Analyst Do?
  • Career Development Resources
  • Career Aptitude Test
  • Share your Coursera Learning Story

Coursera

  • About
  • What We Offer
  • Leadership
  • Careers
  • Catalog
  • Coursera Plus
  • Professional Certificates
  • MasterTrack® Certificates
  • Degrees
  • For Enterprise
  • For Government
  • For Campus
  • Become a Partner
  • Social Impact
  • Free Courses
  • ECTS Credit Recommendations

Community

  • Learners
  • Partners
  • Beta Testers
  • Blog
  • The Coursera Podcast
  • Tech Blog

More

  • Press
  • Investors
  • Terms
  • Privacy
  • Help
  • Accessibility
  • Contact
  • Articles
  • Directory
  • Affiliates
  • Modern Slavery Statement
  • Manage Cookie Preferences
Learn Anywhere
Download on the App Store
Get it on Google Play
Logo of Certified B Corporation
© 2025 Coursera Inc. All rights reserved.
  • Coursera Facebook
  • Coursera Linkedin
  • Coursera Twitter
  • Coursera YouTube
  • Coursera Instagram
  • Coursera TikTok
Coursera

Welcome back

​
Your password is hidden
​

or

New to Coursera?


Having trouble logging in? Learner help center

This site is protected by reCAPTCHA Enterprise and the Google Privacy Policy and Terms of Service apply.