Cheuk Ting Ho
After having a career as a Data Scientist and Developer Advocate, Cheuk dedicated her work to the open-source community. Currently, she is working as AI developer advocate for JetBrains. She has co-founded Humble Data, a beginner Python workshop that has been happening around the world. She has served the EuroPython Society board for two years and is now a fellow and director of the Python Software Foundation.
Sessions
In this workshop, we will cover the very basic of using PyO3 - rust library that package rust crates into Python modules. This is the most popular tool in terms of creating Python libraries with Rust.
In recent years, Rust has been getting more and more popular over other similar programming languages like C and C++ due to its robust compiler checking and ownership rules to make sure memory is safe. Hence there are more and more Python libraries that have been written in Rust natively with a Python API interface. One of the tools that have been driving this movement is PyO3, a toolset that proves Rust bindings for Python and tools for creating native Python extension modules.
In this interactive workshop, we will cover the very basics of using PyO3. There will be hands-on exercises to go from how to set up the project environment to writing a "toy" Python library written in Rust using PyO3. We will cover a lot of expectations of the API provided by PyO3 to create Python functions, modules, handling errors and converting types.
Goal
To give developers who are not familiar with PyO3 an introduction to PyO3 so they can consider building their Python libraries with Rust to make use of Rust's memory-safe property and parallelism ability.
Target audiences
Any developers who are interested in developing Python libraries using Rust. It will be an advantage if the attendees are comfortable writing in Rust. However, attendees are not required to be familiar with Rust as all the Rust codes will be provided. Basic knowledge of Python will be assumed from the attendees.
Outline
Part 1 - introduction and getting started (40 mins)
- What's the difference between Rust and Python (5 mins)
- Why using PyO3 (5 mins)
- Setting up the environment (exercises) (15 mins)
- Starting a new project (exercises) (15 mins)
Break (15 mins)
Part 2 - Creating a simple Python library (100 mins)
- Creating Python modules (exercises) (40 mins)
- Generating documentation
- Creating Python functions (exercises) (60 mins)
- How to create function signatures
- How to deal wi
In this workshop, we will cover the very basic of using PyO3 - rust library that package rust crates into Python modules. This is the most popular tool in terms of creating Python libraries with Rust.
In recent years, Rust has been getting more and more popular over other similar programming languages like C and C++ due to its robust compiler checking and ownership rules to make sure memory is safe. Hence there are more and more Python libraries that have been written in Rust natively with a Python API interface. One of the tools that have been driving this movement is PyO3, a toolset that proves Rust bindings for Python and tools for creating native Python extension modules.
In this interactive workshop, we will cover the very basics of using PyO3. There will be hands-on exercises to go from how to set up the project environment to writing a "toy" Python library written in Rust using PyO3. We will cover a lot of expectations of the API provided by PyO3 to create Python functions, modules, handling errors and converting types.
Goal
To give developers who are not familiar with PyO3 an introduction to PyO3 so they can consider building their Python libraries with Rust to make use of Rust's memory-safe property and parallelism ability.
Target audiences
Any developers who are interested in developing Python libraries using Rust. It will be an advantage if the attendees are comfortable writing in Rust. However, attendees are not required to be familiar with Rust as all the Rust codes will be provided. Basic knowledge of Python will be assumed from the attendees.
Outline
Part 1 - introduction and getting started (40 mins)
- What's the difference between Rust and Python (5 mins)
- Why using PyO3 (5 mins)
- Setting up the environment (exercises) (15 mins)
- Starting a new project (exercises) (15 mins)
Break (15 mins)
Part 2 - Creating a simple Python library (100 mins)
- Creating Python modules (exercises) (40 mins)
- Generating documentation
- Creating Python functions (exercises) (60 mins)
- How to create function signatures
- How to deal wi
The Rust Summit aims to bring together various stakeholders of Python’s Rust ecosystem to discuss its current state, address challenges, and align on ongoing work.
- When: Tuesday morning, July 15th 9:30 - 12:45
- Where: Prague Congress Centre (PCC), Room Club C
- Who can join: Anyone with a valid in-person EuroPython 2025 ticket
Meet the Community
The main goal of this summit is for various stakeholders of Python’s Rust ecosystem to meet, learn, and discuss about the Rust ecosystem in Python, how Python can benefit from Rust, and anything related to the adaptation of thread-free Python.
We are particularly looking for contributors and maintainers of:
- Rust libraries / frameworks that have Python API interface (e.g. polars)
- Tools in the Python ecosystem that are built with Rust (e.g. ruff, uv etc)
- Python libraries that are migrating all or part of their source code to Rust code
- New Python libraries that are written in Rust
- Other Python projects that can benefit from using Rust
Presentations
If there is a topic you would like to present, please indicate it in the form and fill it in early.
Sparkling presentations are brief, and intended to get everyone on the same page and start a discussion. Time slots are of 30 min at most (10 min of presentation + 20 min for questions/discussion).
Deep dive presentations are 45 mins in total (35 mins presentation and 10 mins Q\&A). They can have more details and be a bit more informative, they should provide educational value to the participants.
We are also open to suggestions for unconference-style activities.
Tentative Agenda (subject to change)
- 9:00 AM Welcome: Meet and greet - self introduction
- 10:00 AM Sparkling Presentation - The Rust Foundation and Why Rust and Python cooperation is important for the future of both languages (by Ernest Kissiedu)
- 10:30 AM Deep Dive Presentation - How to build Python+Rust packages with pixi (by Julian Hofer)
- 11:15 AM Sparkling Presentation - Johnnycanencrypt and related desktop applications which allow people to use OpenPGP on YubiKey. (by Kushal Das)
- 11:45 AM Deep Dive Presentation - Introducing Pyrefly: A faster python type checker written in Rust (by Meggie Moss)
- 12:30 AM Wrap up of the summit
Registration
To be part of the Rust summit register your interest now! 👈
Please register early. If you are not yet sure if you can come, note it on your registration. You can change your answer later.
You need to have a valid EuroPython in-person ticket to participate. If this is an issue for you, say so on the form and we’ll try to figure something out.
If you can, plan to stay for the whole conference, to have plenty of time to follow up on discussions and new friendships.
The event is limited to [TBA] participants. If more sign up, there will be a selection process.
We will contact you with confirmations and more details closer to the event.
The Rust Summit aims to bring together various stakeholders of Python’s Rust ecosystem to discuss its current state, address challenges, and align on ongoing work.
- When: Tuesday morning, July 15th 9:30 - 12:45
- Where: Prague Congress Centre (PCC), Room Club C
- Who can join: Anyone with a valid in-person EuroPython 2025 ticket
Meet the Community
The main goal of this summit is for various stakeholders of Python’s Rust ecosystem to meet, learn, and discuss about the Rust ecosystem in Python, how Python can benefit from Rust, and anything related to the adaptation of thread-free Python.
We are particularly looking for contributors and maintainers of:
- Rust libraries / frameworks that have Python API interface (e.g. polars)
- Tools in the Python ecosystem that are built with Rust (e.g. ruff, uv etc)
- Python libraries that are migrating all or part of their source code to Rust code
- New Python libraries that are written in Rust
- Other Python projects that can benefit from using Rust
Presentations
If there is a topic you would like to present, please indicate it in the form and fill it in early.
Sparkling presentations are brief, and intended to get everyone on the same page and start a discussion. Time slots are of 30 min at most (10 min of presentation + 20 min for questions/discussion).
Deep dive presentations are 45 mins in total (35 mins presentation and 10 mins Q\&A). They can have more details and be a bit more informative, they should provide educational value to the participants.
We are also open to suggestions for unconference-style activities.
Tentative Agenda (subject to change)
- 9:00 AM Welcome: Meet and greet - self introduction
- 10:00 AM Sparkling Presentation - The Rust Foundation and Why Rust and Python cooperation is important for the future of both languages (by Ernest Kissiedu)
- 10:30 AM Deep Dive Presentation - How to build Python+Rust packages with pixi (by Julian Hofer)
- 11:15 AM Sparkling Presentation - Johnnycanencrypt and related desktop applications which allow people to use OpenPGP on YubiKey. (by Kushal Das)
- 11:45 AM Deep Dive Presentation - Introducing Pyrefly: A faster python type checker written in Rust (by Meggie Moss)
- 12:30 AM Wrap up of the summit
Registration
To be part of the Rust summit register your interest now! 👈
Please register early. If you are not yet sure if you can come, note it on your registration. You can change your answer later.
You need to have a valid EuroPython in-person ticket to participate. If this is an issue for you, say so on the form and we’ll try to figure something out.
If you can, plan to stay for the whole conference, to have plenty of time to follow up on discussions and new friendships.
The event is limited to [TBA] participants. If more sign up, there will be a selection process.
We will contact you with confirmations and more details closer to the event.