Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I spent a large part of 2022 building an async p2p networking library for Python. The main reason I wanted to do this was because years ago I tried to write a similar library and it didn't go well. So yeah: I wanted to see if I'd be able to do it any better with my current software skills. It was really important to me that I finished something for once, too.

I worked hard on the project and I do feel that every aspect has been a significant improvement from what I tried to build in the past. It really makes me appreciate just how much sacrifice it takes to build good software. Like you can't be lazy and just be like 'yeah... this kind of works so the code stays.' I had to re-write code multiple times. I lost track of the number of re-writes for some of the more complex modules.

I will also say the most significant reason the project ended up successful was due to an emphasis on testing. I spent months writing a test suite and increasing 'code coverage.' In doing this I found many problems and re-wrote code until it worked how it was supposed to. My emphasis on testing is what ultimately made the software in any way stable enough to use. Where ever possible -- live testing was used with real infrastructure so I know all features work in the real world.

The software is on Github and Pypi: https://github.com/robertsdotpm/p2pd https://pypi.org/project/p2pd/

Taking a brief break from the project to recharge. So if you find a bug it probably won't be patched right away.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: