whatisgithub

What is challenges?

datavorous/challenges — explained in plain English

Analysis updated 2026-07-17 · repo last pushed 2026-02-24

109PythonAudience · dataComplexity · 4/5MaintainedSetup · moderate

In one sentence

A coding challenges repo featuring a schema-driven cricket data compressor that shrinks 2.87 GB to 7.3 MB by baking cricket's rules into the file format instead of using generic compression.

Mindmap

mindmap
  root((challenges))
    What it does
      Domain-aware compression
      Cricket data codec
      400x size reduction
    Tech stack
      Python
      Schema-driven codec
    Comparisons
      Beats gzip
      Beats 7-Zip
    Audience
      Data engineers
      Sports analytics
      Learners of codec design

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Compress large cricket match datasets by encoding the sport's rules directly into the binary format instead of relying on generic tools.

USE CASE 2

Study this as a case study in schema-driven binary codec design for any domain with predictable, rule-bound data.

USE CASE 3

Apply the same domain-aware compression approach to sports analytics, sensor logs, or financial records with known structural constraints.

What is it built with?

Python

How does it compare?

datavorous/challengesoliverleexz/serlyyfz/warp-as-history
Stars109109109
LanguagePythonPythonPython
Last pushed2026-02-24
MaintenanceMaintained
Setup difficultymoderatehardhard
Complexity4/55/55/5
Audiencedataresearcherresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 1h+

Includes detailed write-ups and downloadable compressed files, but is primarily a case study rather than a plug-and-play tool.

So what is it?

This repository is a collection of coding challenges, with one standout project: a custom compression system for cricket match data that achieves remarkable space savings by thinking about the problem differently than traditional compression tools. The main challenge here is data compression, but not in the way most people think about it. Instead of using generic compression algorithms that look for repeated patterns in raw text, this project exploits the specific rules of cricket itself. Cricket matches follow strict, predictable laws, for example, the same bowler (pitcher) must throw all six deliveries (pitches) in an over (round). Rather than storing the bowler's name or ID repeatedly with each pitch and letting generic compression tools figure out the pattern, this solution bakes that rule directly into the file format. Since cricket law guarantees the bowler per over, the system stores it just once in the "over header" and doesn't need to repeat it. The result is a shrinking of the data from 2.87 GB to just 7.3 MB, roughly 400 times smaller. The project compares this smart, domain-aware approach against standard tools like gzip and 7-Zip. Those generic compressors achieve good results (the dataset compresses to around 50-45 MB), but the custom codec gets there first by eliminating redundancy at the structural level rather than finding and squishing it statistically. The README calls this a "schema-driven binary codec", meaning it builds the cricket dataset's rules into how the data is physically laid out in bytes, making illegal states impossible to represent in the first place. This would interest data engineers, especially those working with large datasets that have predictable structures, sports analytics, sensor logs, financial records, or any domain where you understand the constraints upfront. It's also a good case study in how deeply understanding your data's domain can lead to smarter solutions than applying generic tools. The project includes detailed write-ups and downloadable compressed files, making it both an educational reference and a practical resource for anyone working with cricket data.

Copy-paste prompts

Prompt 1
Explain how this cricket data codec avoids repeating the bowler's name for every delivery in an over.
Prompt 2
Help me design a similar schema-driven binary codec for a dataset in my own domain with known structural rules.
Prompt 3
Compare this custom cricket codec's approach to how gzip and 7-Zip compress the same dataset.
Prompt 4
Walk me through the file format layout that lets this codec shrink 2.87 GB down to 7.3 MB.

Frequently asked questions

What is challenges?

A coding challenges repo featuring a schema-driven cricket data compressor that shrinks 2.87 GB to 7.3 MB by baking cricket's rules into the file format instead of using generic compression.

What language is challenges written in?

Mainly Python. The stack also includes Python.

Is challenges actively maintained?

Maintained — commit in last 6 months (last push 2026-02-24).

How hard is challenges to set up?

Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.

Who is challenges for?

Mainly data.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.