GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Start unifying uvloop & winloop together (WINDOWS SUPPORT) by Vizonex · Pull Request #736 · MagicStack/uvloop

Conversation

@Vizonex

@Vizonex Vizonex commented Mar 17, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

A once seen os-gate is finally going to be lifted. I think it's pretty BS that we waited a decade but I'm here now to bring all of this nonsense to a close. I don't think it was fair to begin with. All I wanted to do was scrape websites with tor back in my day and at that time my computer was a 2 cpu laptop, to me making windows support wasn't just a goal but a statement that anything is possible if you put your mind to it.

I have maintained my project winloop for around 3 years and I originally didn't want to bring windows parts here thinking that the chore or merging would be much more painful that I had anticipated.

My reason for bringing my fixes for windows back here has to do with the maintenance nightmare/catchup game. With a part-time job clenching my neck along with other projects that I've wanted to explore I'm bringing all my research back here. To put my very first pypi library that I really cared about to a close.

I want to give a huge thank you to @lschoe for helping me to unify different portions of code that I have originally written and another shoutout to everyone else who contributed to winloop. This work would not be possible without all of you.

As soon as this passes I will be able to start safely decommissioning winloop and redirect my developers & users to uvloop again this should also make projects needing both winloop & uvloop obsolete cutting a bunch of unwanted headaches.

In return I plan to help maintain the uvloop project. I believe that I can find new things to optimize in the future.

fixes #14
fixes #536
fixes #652

Also feel free to close #62 as obsolete.

Warning

I want as much help and as many reviewers as I can get. Do whatever it takes to point me in the right direction and I will do my best to follow.
Merging windows and posix together is a pain and we need to get start unifying a lot of posix-speific code if we want this to work.

Note

Uvloop should not be a library that doesn't allow windows to be used, there are people who still use windows on a daily basis, while I may not support Microsoft's business practices, having windows support will benefit everybody who has waited patiently for this and there are plenty of people who are using winloop to workaround this current problem. Having uvloop support windows is my endgame, this will in return cut the stress and burden that has been given and reduce the over all maintenance costs that winloop has had for me and the other maintainers of that project over the years.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Noob-Lol, ajacobsson, dungdm93, tsukumijima, and JeppeKlitgaard reacted with thumbs up emoji Vizonex, XiaoYouChR, fantix, webknjaz, Noob-Lol, dungdm93, and tsukumijima reacted with hooray emoji Vizonex, XiaoYouChR, fantix, owenlamont, webknjaz, Noob-Lol, Owen-OptiGrid, EDM115, dungdm93, tsukumijima, and 2 more reacted with heart emoji x42005e1f, Vizonex, tarasko, XiaoYouChR, fantix, owenlamont, fizzi01, webknjaz, s-a-ng, Noob-Lol, and 7 more reacted with rocket emoji Noob-Lol and EDM115 reacted with eyes emoji
All reactions
  • 👍 5 reactions
  • 🎉 7 reactions
  • ❤️ 12 reactions
  • 🚀 17 reactions
  • 👀 2 reactions
@Vizonex
start unifying uvloop & winloop together
35b0fab
@Vizonex
Vizonex marked this pull request as draft March 17, 2026 23:15
@Vizonex
Accomplishment: Uvloop now compiles on Windows
6827264
@Vizonex
Vizonex marked this pull request as ready for review March 18, 2026 00:03
Vizonex added 12 commits March 17, 2026 19:12
@Vizonex
cleanup errors.pyx comments
0bb1a68
@Vizonex
forgot about setup.py let's add it
77bc6dc
@Vizonex
siginterrupt is not avalible on windows so make it optional
acd5a8b
@Vizonex
try placing __forking variables outside of system OS check
994560c
@Vizonex
windows doesn't have childwatchers so disable it
d3c2b4a
@Vizonex
add gil technqiue for windows to simulate forking
898b310
@Vizonex
add a non-deprecated packaging tool
114ae18
@Vizonex
start introducing windows to the testsuite
4037ba8
@Vizonex
skip fork test in signals if windows
7fb3f43
@Vizonex
merge more things from winloop on over to uvloop in test_signals
2ed0e62
@Vizonex
just port all the code over
46bc155
@Vizonex
merge more tests
3d1fc4d
@Vizonex

Vizonex commented Mar 18, 2026

Copy link
Copy Markdown
Author

Feel free to kill the workflows for now. Something doesn't seem right at the moment.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Vizonex added 3 commits March 18, 2026 10:42
@Vizonex
merge both winloop & uvloop's error handling ways together
921370b
@Vizonex
merge more tests
250a656
@Vizonex
merge more of winloop into uvloop, add comment about streams returnin…
a42c101
…g 0 if AF_Unix
@Vizonex

Vizonex commented Mar 18, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Author

I have successfully gotten uvloop to work on windows now. Now we just need to kill the remaining workflows up until merge more of winloop into uvloop commit. Turns out returning 0 when the socket is AF_UNIX makes windows behave normally. I would assume it has to do with the way sockets on windows work, all I know is that the job is done and that I am finished with merging all of the tests from winloop on over to uvloop and that I have gotten my tests to run successfully on my laptop. on python 3.10.20.

fantix reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex

Vizonex commented Mar 18, 2026

Copy link
Copy Markdown
Author

@fantix I know I'm asking for quite a bit today but could you go ahead and kill all workflows up until #790 for me?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex
force trigger workflow temporarly
aca987b
@fantix

fantix commented Mar 19, 2026

Copy link
Copy Markdown
Member

Oh wow, this is EPIC, @Vizonex! Thank you so much for all the hard work over the years! Looks like the workflows are stopped now (sorry for missing the request!), but I would suggest running CI debugging on your fork before PR is ready, so that you'll have more timely control to kill/restart them.

Vizonex and Owen-OptiGrid reacted with thumbs up emoji Vizonex reacted with heart emoji
All reactions
  • 👍 2 reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex Vizonex mentioned this pull request Mar 19, 2026
Windows + cx_Freeze GUI build: create_subprocess_exec() fails with OSError [Errno 9] bad file descriptor unless stdin=DEVNULL Vizonex/Winloop#126
Closed
@Vizonex
Make All versions up to 3.12 work successfully. (#1) (Excluding Windo…
d8eac6a
…ws with uvloop debug which is broken.)

* add another branch to test on my end

* force trigger workflow

* reformat test_context with black

* reformat all tests to obey flake8

* fix flake8 errors

* add dns related things from winloop

* try something that isn't invalid on 3.8

* reformat with black using valid 3.8 syntax and the 79 character limit

* update setup.py

* fix more formatting problems with test_process

* uncomment trest_process_streams_pass_fds on windows

* slience all other known to fail tests with windows

* fix if statement for dns.pyx

* silencing reamining failures

* remove whitespace

* update tests

* update tests

* skip signal test on apple for now

* remove whitespace

* reformat with black once more
@Vizonex

Vizonex commented Mar 19, 2026

Copy link
Copy Markdown
Author

@fantix I managed to get every version from 3.8-3.12 to behave, I did however have to silence a few unittests for example: test_dns since it seems example.com might have some new quirks with it that are causing for IP addresses to not come out the same.

Another thing to point out is that I can't seem to get windows to compile and be tested in debug-mode onto the workflows. I'm sure someone or another reviewer will figure it out for me eventually but I haven't figured that out myself yet.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex Vizonex mentioned this pull request Mar 19, 2026
Why not implement in uvloop? Vizonex/Winloop#124
Open
Vizonex added 2 commits March 19, 2026 21:55
@Vizonex
temporary fix for working with windows in debug mode
9bd6dd6
@Vizonex
Merge branch 'windows' of https://github.com/Vizonex/uvloop into windows
37e54a2
@Vizonex
update with suggestions made
d3c79f2
@Vizonex
Vizonex requested a review from webknjaz March 28, 2026 17:48
Vizonex added 2 commits April 5, 2026 20:45
@Vizonex
swap test_write_buffer_full to skip via wrapper and reenable testing …
47ba5e1
…the slow executor.
@Vizonex
fix test_pipes.py format
d90e020
@Vizonex Vizonex mentioned this pull request Apr 15, 2026
Start Adding in Other OS Wheels. Vizonex/Winloop#134
Draft
3 tasks done
@fantix

fantix commented May 1, 2026

Copy link
Copy Markdown
Member

@Vizonex yeah I think we just need to find time and/or people to review this, as well as adding you to the uvloop maintainers, but that's up to @1st1.

There are a few fixes in master branch, which may unblock a few failing CI here.

Vizonex, XiaoYouChR, and Owen-OptiGrid reacted with thumbs up emoji
All reactions
  • 👍 3 reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex
Merge branch 'master' into windows
7a2ddc5
@Vizonex

Vizonex commented Jun 5, 2026

Copy link
Copy Markdown
Author

Seems I had a couple conflicts to resolve. @fantix I found out that we might be able to get debug libraries for windows and others using some form of the uv package manager should I look into trying that some more?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Vizonex and others added 3 commits June 5, 2026 13:23
@Vizonex
reformat tests
6388dc6
@Vizonex
skip test_create_sock_cancel_fd_leak for now... (#8)
55ed79c
@Vizonex
Add Windows debug Makefile workaround. (#9)
1a9f29e
* retain --debug and other flags when debug is used and is not windows

* this addtional thing is temporary

* provide some extra grace for windows 3.11

* lets bump it to 0.015 instead so that 3.12 windows has some chance of winning

* give a bigger buffer and shorter timeout on windows.

* readjust timeout of test_socket_cancel_sendall

* mark windows as both winning and loosing this test it's an unwanted coinflip.

* final straw for test_socket_cancel_sock_sendall

* test_call_later_2 time decrease

* last but not least
@Vizonex Vizonex mentioned this pull request Jun 27, 2026
Fix typo Vizonex/Winloop#146
Merged
3 tasks done
@Vizonex

Vizonex commented Jun 27, 2026

Copy link
Copy Markdown
Author

@fantix What other changes should I look into before finalizing the merge?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Jun 27, 2026
Any chance to get available on Windows? #352
Closed
Minor typo in repository About description Vizonex/Winloop#144
Closed
Vizonex added 2 commits June 30, 2026 23:15
@Vizonex
CX freeze bugfix windows (#11)
a0663f6
* apply cx-freeze bugfix

* initiate tests over here temporarly
@Vizonex
Tcp Test Fix (#12)
67df390
* skip test_create_sock_cancel_fd_leak for now...

* fix tcp tests for windows that weren't working previously.

* really quickly let's run windows in the testsuite will get rid of this when we are done.

* reformat test_tcp and reapply skipping the test_shutdown_timeout

* re-remove windows branch from workflows we did our job.
@Vizonex

Vizonex commented Jul 3, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Author

All of the bugs and buggy tests that I could fix as of now are complete, was there anything else that I need to accomplish here?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex Vizonex mentioned this pull request Jul 11, 2026
create_subprocess_shell on Windows corrupts embedded quotes Vizonex/Winloop#153
Closed
@fantix

fantix commented Jul 14, 2026

Copy link
Copy Markdown
Member

I had a quick look at this, and it feels quite solid to me! I'll spend some time later to get the CI run again, and get a good-to-go from @1st1.

Vizonex reacted with heart emoji
All reactions
  • ❤️ 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex
Merge branch 'master' into windows
a4c2eff
@Vizonex

Vizonex commented Jul 14, 2026

Copy link
Copy Markdown
Author

I had a quick look at this, and it feels quite solid to me! I'll spend some time later to get the CI run again, and get a good-to-go from @1st1.

That will be wonderful. Thank you for your patience.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex

Vizonex commented Jul 14, 2026

Copy link
Copy Markdown
Author

@fantix Seems a new bug emerged since I was last here. everything within range of 3.10 or lower seems to fail. Vizonex#13

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ssss141414 ssss141414 mentioned this pull request Aug 11, 2026
Add native Windows ARM64 CI and release wheels #757
Closed
@Vizonex
Implement ssss141414's fixes (#14)
3dbf3bf
* implement ssss141414's fixes
@Vizonex

Vizonex commented Sep 18, 2026

Copy link
Copy Markdown
Author

@fantix I seem to be failing at keeping caught up with all the changes going on. I'm wondering if I should close and repoen the PR or try utilizing a different approach to get this added in

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex
Vizonex marked this pull request as draft November 4, 2026 04:39
@Vizonex

Vizonex commented Nov 4, 2026

Copy link
Copy Markdown
Author

Gonna reconvert to a draft for the time being. Seems there's not enough motivation yet.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@Vizonex
Vizonex marked this pull request as ready for review November 12, 2026 19:46
@Vizonex

Vizonex commented Nov 12, 2026

Copy link
Copy Markdown
Author

@fantix I think I'm going to close and reopen as a new PR since there are now too many branch conflicts and many new things to take account for:

  • example: playwright support which needed new flags for subprocesses.
  • various bug fixes
  • various improvmenets that would take a lot longer to review and merge.
  • pyinstaller fixes on my end which added lazy hooks to compile exe applications
  • improvements to DNS resolving which involved a cython version of a Future object
  • improvements to socket selectors using a cdef class extension of a Future object

Do you have any ideas on what should be done before I reattempt this or if the improvements on winloop's side need mirroring on uvloop's end first?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@webknjaz webknjaz Awaiting requested review from webknjaz

At least 1 approving review is required to merge this pull request.

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Windows 10 support windows support? uvloop doesn't support in windows

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@Vizonex @fantix @webknjaz
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.