This is a Rust implementation of the Advanced Encryption Standard (AES).
The objective of this project is to analyze the concurrent capabilities of Rust, under various workloads, and to compare the performance between different languages.
The project is fully containerized, so you don't need to have Rust installed on your machine.
The configuration is done through the .env file. The following variables are available:
N_THREADS: Number of threads to be used in the encryption processREPEAT: Number of times the encryption/decryption process will be repeatedPLAIN_TEXT: Path to the file with the data to be encryptedENCRYPTED_TEXT: Path to the file where the encrypted data will be storedDECRYPTED_TEXT: Path to the file where the decrypted data will be stored
Having a
PLAIN_TEXTandENCRYPTED_TEXTwill mean encrypting the data, while having aENCRYPTED_TEXTandDECRYPTED_TEXTwill mean decrypting the data. Having all three will mean encrypting and decrypting the data.
make setup: Starts docker and creates needed directoriesmake dummy_file: Creates a dummy with data to be encryptedmake build: Builds the image with the binary
make deploy: Runs the container and monitoring servicesmake remove: Stops and removes the container and servicesmake run: Runs only the encryption processmake test: Runs the tests