This is a Julia implementation of the Advanced Encryption Standard (AES).
The objective of this project is to analyze the concurrent capabilities of Julia, 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 process. This should also be configured in theDockerfile
REPEAT
: 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_TEXT
andENCRYPTED_TEXT
will mean encrypting the data, while having aENCRYPTED_TEXT
andDECRYPTED_TEXT
will mean decrypting the data. Having all three will mean encrypting and decrypting the data.
make build
: Builds the image with the binarymake dummy_file
: Creates a dummy with data to be encrypted
make deploy
: Runs the container and monitoring services- Afterwards:
make aes_bash
: Opens a bash session in the container make remove
: Stops and removes the container and servicesmake logs
: Shows the logs of the container