This package allows for asynchronous hashing of files.
These are the original goals of the project:
- Learn about Go and its concurrency idioms by working on a simple software project that involves parallel computing.
- Ideally, the resulting software can be reused in other projects.
- the library/application is for hashing files (e.g. SHA1).
- the interface should support that the caller specify the type of hash function.
- the application should be able to do I/O and hashing in parallel to optimize the overall performance.
- it should be possible to pause/resume the hashing at any time.
- it should also be possible to shutdown the concurrent go routines completely at any time (not just pause them).
- later it should be possible to implement advanced optimizations like hashing files from different physical devices in parallel.
- it should be possible to queue files for hashing at any time.
The exported interface is not yet stable. Major changes are to be expected.
Note: If you need a more permissive license, feel free to contact me.
Copyright (C) 2012-2013 Robert Nitsch
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.