Free open source on-the-fly encryption software
When encrypting or decrypting data, TrueCrypt uses so-called pipelining (asynchronous processing). While an application is loading a portion of a file from a TrueCrypt-encrypted volume/drive, TrueCrypt is automatically decrypting it (in RAM). Thanks to pipelining, the application does not have wait for any portion of the file to be decrypted and it can start loading other portions of the file right away. The same applies to encryption when writing data to an encrypted volume/drive.
Pipelining allows data to be read from and written to an encrypted drive as fast as if the drive was not encrypted (the same applies to file-hosted and partition-hosted TrueCrypt volumes).*
Note: Pipelining was introduced in TrueCrypt 5.0 and it is implemented only in the Windows versions of TrueCrypt.
* Some solid-state drives compress data internally, which appears to increase the actual read/write speed when the data is compressible (for example, text files). However, encrypted data cannot be compressed (as it appears to consist solely of random “noise” without any compressible patterns). This may have various implications. For example, benchmarking software that reads or writes compressible data (such as sequences of zeroes) will report lower speeds on encrypted volumes than on unencrypted volumes (to avoid this, use benchmarking software that reads/writes random or other kinds of uncompressible data).