10 releases

Uses old Rust 2015

0.1.10 Dec 18, 2017
0.1.9 Dec 7, 2017

#897 in Cryptography

MIT license

11KB
70 lines

Fiffy Build Status Build Status

Table of Contents

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Installing Prerequisites

Below you'll find what's required to build and compile Fiffy:

Rust and Cargo

OSX/Unix installation (via Terminal):

curl -sSf https://static.rust-lang.org/rustup.sh | sh

Instructions for Microsoft Windows may be found here.

Additional installation instructions can be found here.

Building Fiffy

After installing the prerequisites listed above, you're ready to build!

  1. First, clone the repository to your local machine via git:
git clone https://github.com/SeanPrashad/Fiffy.git

Or by downloading the .zip equivalent, found here.

Note: Remember to extract the .zip file to a location where you conduct your work!

  1. Next, cd into the downloaded repository using your Terminal (or Git Bash if on Windows):
cd whereMyReposAreStored/Fiffy/
  1. To build the source code, use:
cargo build

Note: Supply the --verbose argument to get a more detailed output (ie. cargo build --verbose)

Running the Test Suite

The test suite can be found within src/lib.rs in the module tests. To build and run all test suites, simply use:

cargo test

Note: Supply the --verbose argument to get a more detailed output (ie. cargo test --verbose)

Linting

Rust comes with a built-in linter, Clippy, that's automatically configured to run when you build Fiffy.

To invoke Clippy on-demand, simply run:

cargo clippy

Note: Supply the --verbose argument to get a more detailed output (ie. cargo clippy --verbose). More information can be found here.

Usage

  1. get_file_name(file_path: &str) - returns the file name (as an OsString), given an absolute or relative path
let file_path = "/home/kim/mydata.txt";
let file_name = get_file_name(file_path);
println!("{:?}", file_name);  //prints "mydata.txt"
  1. get_file_size(file_path: &str) - returns the file size (as a u64), given an absolute or relative path
let file_path = "/home/kim/mydata.txt";
let file_size = get_file_size(file_path);
println!("{:?}", file_size);  //prints "129" - (e.g., the file is 129 bytes on disk)
  1. generate_sha1(file_path: &str) - returns the sha1 digest (as a String), given an absolute or relative path
let text = "The quick brown fox jumps over the lazy dog"
let sha1_digest = generate_sha1(text);
println!("{:?}", sha1_digest);  //prints "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12"
  1. generate_md5(file_path: &str) - returns the md5 digest (as a String), given an absolute or relative path
let text = "The quick brown fox jumps over the lazy dog"
let md5_digest = generate_md5(text);
println!("{:?}", md5_digest);  //prints "9e107d9d372bb6826bd81d3542a419d6"

Tools and Technologies

  • Rust - A systems programming language
  • Crates.io - Rust's Package Manager
  • Clippy - Linting for Rust
  • Rust-Crypto - A library of common cryptographic algorithms

Contributing

Any and all contributions are welcome, regardless of your programming expertise. Please refer to CONTRIBUTING.md for details on how to get started.

Authors

  • Sean Prashad - Initial and on-going maintenance - @SeanPrashad
  • David Humphrey - Initial documentation and development improvements/suggestions - @humphd
  • Marco Beltempo - Source code contributor - @marcobeltempo
  • Dan Epstein - Documentation contributor - @Securter

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Acknowledgments

  • #rust-beginners on Mozilla's IRC server for all of their help
  • Professor David Humphrey for guiding, challenging and rewarding us with the world of Open Source

Dependencies

~3.5–5.5MB
~84K SLoC