Show HN: Openleetcode – Local LeetCode runner where tests live in the repo
You write a standard solution, just like on LeetCode, and run it through the CLI. It identifies the problem by ID or title, executes your code against local test cases, and shows the result. It currently supports around 1.4k problems and multiple languages, including Python, C++, Rust, Java, Go, TypeScript, Swift, and others. The project is still an MVP. System design, SQL, and concurrency problems are not supported yet, but support for more problem types is planned. Made in Haskell!
Discussion Highlights (10 comments)
rfgplk
The fact that this is written in Haskell is amazing in it of itself. Will try it out
orsenthil
Very cool. What motivated you to build this and what use case do you see for this project ?
sam1r
This is awesome!
gaya3bollineni
how do you keep the local test cases in sync when the original problems or test cases change?
joshribakoff
I just prompt my ai coding assistant directly to scaffold out problems and test cases. One nice thing is the LLM can “reason” about my weak areas and tailor the drills it generates next to keep me on a productive path. I personally don’t get much value from pulling in 1,400 arbitrary problems but this is cool for people who want to hit the ground running.
seagram
What a great idea for a project. Will try out. Any thoughts on supporting a CLI (or TUI) interface for browsing through the problem sets locally (titles, descriptions, difficulty, etc.)? On that note, open to contributions? And much respect for choosing Haskell.
faxmeyourcode
Nice! The idea of having a friday leetcode problem for my team has been kicked around to try and keep us on our toes when it comes to solving these style problems and preventing atrophy of this part of our brain. Might try wrapping this cli in some kind of web ui or adding it to our slackbot
exabrial
Why is leet code even a thing past 2024
StableAlkyne
This is such a cool idea, I can't believe it hasn't been done before! > It currently supports around 1.4k problems and multiple languages, including Python, C++, Rust, Java, Go, TypeScript, Swift, and others. It would be interesting to have a variant where you get the input data through stdin or a file on disk, and verify by writing to stdout. That way you could bring your own language
vivzkestrel
- do you mind explaining why you picked this backend? https://github.com/engineer-man/piston - you could simply spawn a docker container for each programming language and run user submitted code inside no?