python-trio / python-trio/trio
High-level helpers for working with unix domain sockets
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.3k
- Forks
- 431
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 6
Description
Now that the high level networking API is coming together, we should also add unix domain helpers. Should be pretty straightforward.
Some notes here: https://github.com/python-trio/trio/issues/73#issuecomment-285752193
I guess something like:
async def open_unix_stream(path):
...
async def open_unix_listeners(path, *, mode=0o666, backlog=None):
...
mode=0o666 matches what twisted does; tornado does 0o600. Should research which is better as a default.
The biggest issue is to figure out what to do about unlink-on-close. It's nice to keep thing tidy, but it introduces a race condition if you're trying to do no-downtime upgrades...
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the discussion in issue #73, especially the linked comment, and review the proposed open_unix_stream and open_unix_listeners APIs. Research the appropriate socket-file mode by comparing Twisted and Tornado, then resolve the unlink-on-close behavior and its no-downtime upgrade race before defining what completion means.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100