Tool and format for distributed coding challenges
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


hackpack - tool and format for distributed code challenges

hackpack is a project similar to Project Euler, TopCoder or Google Code Jam. It is a way to package, distribute and enjoy coding challenges. Unlike the previously mentioned projects hackpack is decentralized. Anyone can create their own hackpacks and distribute them freely. The problems are solved locally, and there is no client-server architecture. 

A hackpack is a package with a coding challenge. hackpack files have the extension .hp and they turn into directories when unpacked. The directory consists of instructions of the problem to be solved, some inputs with matching rewards. The rewards are locked and can only be unlocked if a program is created that, when fed the input, generates the correct output according to the instructions. 

The reward is a surprise that will be revealed when the challenge is solved and it can be any type of file; a picture, a message or even a new hackpack. By recursively embedding hackpacks as the reward of previous hackpacks it is possible to create matryoshka hackpacks; a sequence of challenges that needs to be solved one after the other to unlock the innermost reward. 

hackpack is also the name of the tool that is used to unpack hackpack files, attempt to unlock rewards and to build hackpacks. 

The hackpack tool is written in Python, but other implementations in other languages are expected in the future. The hackpacks are, unless otherwise stated in the challenge, language agnostic, the input is fed into a program's stdin and the solution is read from the stdout of the process. This means that any language or tool able to read from stdin and write to stdout can be used to solve the challenge. 

The hackpack team hopes that this project will encourage people to go code hiking with fellow hackpackers, and also contribute to the hackpacking community by creating high quality hackpacks of their own. 

Happy hacking!