Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run Falcon on Windows with graceful degradation of forking, etc. #190

Open
johnnyshields opened this issue Sep 11, 2022 · 7 comments
Open

Comments

@johnnyshields
Copy link

A minority of users run Ruby on the Windows Ruby Installer which targets mingw-x64 architecture. At least in my own case I use this as a convenience in development rather than in actual production.

Puma works on Windows with graceful degradation of features not supported by OS kernel like fork. It would be nice if Falcon could take a similar approach so that Windows users could at least use Falcon in development capacity (i.e. "it can serve single requests ok"). I've noticed the async gems are also failing to install on Windows.

@ioquatix
Copy link
Member

Hi @johnnyshields sorry I have not replied sooner, but I have finally got Windows support working on io-event gem: https://github.com/socketry/io-event/actions/runs/3241374541/jobs/5313228043

I also started trying to get UNIXSocket working on Windows which isn't strictly necessary but would be pretty useful: ruby/ruby#6513

Windows support required additional changes to Ruby itself, which are now done and will be released as part of Ruby 3.2 - however I was able to get it working albeit fairly inefficiently on 3.1 - so now I just need to add Windows to the Async test matrix.

I'll try to take a look over that over the next month - in theory I don't think it's too hard but I don't really know sometimes Windows support throws a curve ball.

@johnnyshields
Copy link
Author

@ioquatix good to hear from you. That's amazing!! Will check it out when Ruby 3.2 is out in a few months.

@cwkatzmann
Copy link

Checking to see if any progress has been made. I would also like to run Falcon on Windows.

@ioquatix
Copy link
Member

It's slow but we are making progress, io-event is now supported on Windows. async is to a certain extent but it depends on some core changes to Ruby to make non-blocking IO the default.

@cwkatzmann
Copy link

Okay thanks. And is that only for Ruby 3.2?

@ioquatix
Copy link
Member

Yes, and it will probably require Ruby 3.3 on Windows for this all to be supported, although we might be able to make it work on 3.2.

@cwkatzmann
Copy link

Okay, thanks for the update! looking forward to using this tech on Windows :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants