Gallopsled / Gallopsled/pwntools

Pwntools v5 - Breaking changes roadmap

Open
#2,495 2 comments 6 reactions 0 assignees View on GitHub
releases
Dominant language
Python
Stars
13.7k
Forks
1.9k
Avg merge
6d 23h
Merged PRs (30d)
3

Description

With Pwntools 5 we'd like to clean up the codebase and get rid of some legacy features like support for Python 2. This issue can be used to keep track of all the changes which were on hold until a major version bump.

- [x] Drop Python 2.7 support / Require Python 3.10 #2519
- https://github.com/Gallopsled/pwntools/pull/2535
- [ ] Python 3.8+ type hints
- [ ] Add pyproject extras to make pwntools installs slim by default https://github.com/Gallopsled/pwntools/pull/2245
- [ ] Remove deprecated commandline tools https://github.com/Gallopsled/pwntools/issues/2361
- [ ] Possibly switch ELF class to [LIEF](https://github.com/lief-project/LIEF) to allow easier PE / machO support
- [ ] Proper Windows support
- https://github.com/Gallopsled/pwntools/pull/2524
- [ ] Switch order of `keepends` and `drop` commands of `tube.recvline`? https://github.com/Gallopsled/pwntools/pull/2476
- [ ] Strip newline in `tube.recvline` family of functions by default

Please leave a comment for anything missing or concerns.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the unchecked roadmap items and their linked pull requests or issues, including #2245, #2361, #2476, #2524, and the LIEF proposal. Each item needs its scope and acceptance criteria clarified before work begins. Done would mean implementing and separately validating an agreed change, then updating this checklist.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.