The purpose of this project is to rewrite an existing Python script used for data processing in the Rust programming language. The main goals of this project are as follows:
- Code Migration: Rewrite the Python script in Rust, ensuring it performs the same data processing tasks.
- Performance Enhancement: Evaluate the improvements in terms of execution speed and resource usage after the migration to Rust.
To achieve the objectives of this project, the following steps are taken:
- Script Selection: Selected an existing Python script for data processing. This script served as a suitable candidate for migration to Rust.
- Rewrite in Rust: Rewrote the selected Python script in Rust while maintaining the same functionality. This step involved translating the Python code into idiomatic Rust code.
- Testing and Debugging: Tested the Rust script to ensure it produces the expected results. Debugged and fixed any issues that arose during the migration.
- Benchmarking: Conducted performance benchmarking tests to evaluate the improvements in execution speed and resource usage achieved by the Rust version of the script.
- Documentation: Documented the entire process, including the code migration and performance benchmarking. Created a performance comparison report in Markdown format (README).
To run the project, you can use the Makefile and follow these commands:
-
# To install the required the python packages make install
-
# To check code style make lint
-
# To run tests make test
-
# To format the code make format
-
# To extract data make extract
-
# To tranform data make transform_load
-
# To query data make query