Bletchley is a real-world cryptanalysis framework. It was created to assist with the detection, analysis, and exploitation of cryptographic flaws and aims to help automate the tedious aspects of this analysis while leaving the security expert in control of the process. It features automated token encoding detection (36 encoding variants), passive ciphertext block length and repetition analysis, a script generator for efficient automation of HTTP requests, and a flexible, multithreaded padding oracle attack library with CBC-R support.
Find What I Mean aims to provide a searching library that tolerates errors in queries. It will auto-correct typos, extra letters, and so on. This is extremely useful when searching for an item in a list. In traditional search methods the query must be perfect or you get zero matches.
Fivebit is a Python 3 compression library for short text strings. It compresses short strings of text into five bit encoding, which yields a 37.5% reduction for lowercase ASCII. There is also a dictionary for the 1024 most common English words (3 letters or longer). Punctuation, digits, and normal symbols will usually take up 10 bits each, and oddball Unicode characters will take up more space again.
PYZ is a Z-Machine interpreter for playing interaction fiction files. Text adventure games written by Infocom, such as the Zork series, used a then-revolutionary virtual machine called the Z-Machine, which saved code space on the memory-limited computers of the 1980's. People today are still writing text games, now called interactive fiction, for the Z-Machine platform. PYZ includes a mode in which you can see the instructions being executed, turned on by the --trace option. A test suite, pyztest, tests all the instructions.
PeRKy is computer software dedicated to management of software requirements with any Source Control Manager (abbreviated SCM) as a storage layer, based on a simple principle: 1 file per requirement. PeRKy helps developers keep documentation in sync with their code by using the same tools for both. It also integrates notions of distributed development, and thus highly limits the risk of encountering conflicts when merging branches of development.