Skip to content
New issue

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

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

Already on GitHub? # to your account

feat: support uWebSocket.js #22

Closed
wants to merge 13 commits into from
Closed

feat: support uWebSocket.js #22

wants to merge 13 commits into from

Conversation

rtritto
Copy link
Contributor

@rtritto rtritto commented Oct 21, 2024

Changes/TODO

Fix #20

Note: Help and reviews are needed

@rtritto rtritto changed the title feat: init uWebSocket.js support feat: support uWebSocket.js Oct 21, 2024
@rtritto
Copy link
Contributor Author

rtritto commented Oct 21, 2024

FYI @nitedani

@rtritto
Copy link
Contributor Author

rtritto commented Oct 22, 2024

https://github.com/vikejs/vike-node/actions/runs/11464915212/job/31902213911?pr=22

Error: 42.542][/test/vike-node/.prod-uws.test.ts][npm run prod][stderr] ✘ [ERROR] No loader is configured for ".node" files: ../../node_modules/.pnpm/uWebSockets.js@https+++codeload.github.com+uNetworking+uWebSockets.js+tar.gz+442087c0a01bf146_ef5o3ypzxljf3ryz2pfwb3ukxu/node_modules/uWebSockets.js/uws_linux_arm_108.node

What should we use to load native Node (.node) modules?

Some alternatives:

There is a vike plugin to do that?

FYI @brillout @nitedani

@rtritto
Copy link
Contributor Author

rtritto commented Oct 23, 2024

https://github.com/vikejs/vike-node/actions/runs/11464915212/job/31902213911?pr=22

Error: 42.542][/test/vike-node/.prod-uws.test.ts][npm run prod][stderr] ✘ [ERROR] No loader is configured for ".node" files: ../../node_modules/.pnpm/uWebSockets.js@https+++codeload.github.com+uNetworking+uWebSockets.js+tar.gz+442087c0a01bf146_ef5o3ypzxljf3ryz2pfwb3ukxu/node_modules/uWebSockets.js/uws_linux_arm_108.node

What should we use to load native Node (.node) modules?

Some alternatives:

There is a vike plugin to do that?

FYI @brillout @nitedani

I fixed using uws-pack that uses dynamic import to import the current Node.js native module.

Now /test/vike-node/.dev-uws.test.ts got timeout: https://github.com/vikejs/vike-node/actions/runs/11485389164/job/31965334594?pr=22

@rtritto rtritto force-pushed the uws branch 2 times, most recently from f1e2417 to 9dd6074 Compare October 24, 2024 20:28
@brillout
Copy link
Member

brillout commented Nov 1, 2024

I'll have a look at this PR after I'm done with my current backlog. ETA soon.

@rtritto
Copy link
Contributor Author

rtritto commented Nov 25, 2024

Note: this PR can be used (generalized common factor) for all HTTP server frameworks that didn't use Node.js objects (Request, IncomingMessage, ServerResponse)

@brillout
Copy link
Member

@rtritto Thank you for your PR and the ping. It would indeed be great to support uWebSockets. In #16 we're starting using universal-middleware for vike-node. In other words: some(/most?) of the code in this PR would need to be moved to universal-middleware.

Note

In case you're curious: the vision is to have powerful Vike extensions that can fully integrate with each other automatically (with eject if the user wishes more control).

@magne4000 WDYT? On one hand it would quite nice to support uWebSockets and on the other hand if it slows us down too much then maybe it isn't worth it.

@magne4000
Copy link
Member

uWebSockets would indeed need to be integrated into universal-middleware instead of vike-node. @rtritto perhaps that's something you'd be willing to try?

@rtritto
Copy link
Contributor Author

rtritto commented Nov 26, 2024

@magne4000 I don't have (yet) the knowledge to create a new adapter for universal-middleware; as my initial analysis, @universal-middleware/core needs to be adapted (tell me if I'm wrong).

Maybe @hattip/adapter-uwebsockets can help.

Anyway you can start a PR and then ping me or ask for reviews or help.

@brillout
Copy link
Member

In the meantime, let's close this PR in favor of a potentially upcoming universal-middleware PR. Thanks again @rtritto for the groundwork 💯

@brillout brillout closed this Nov 26, 2024
@magne4000
Copy link
Member

@magne4000 I don't have (yet) the knowledge to create a new adapter for universal-middleware; as my initial analysis, @universal-middleware/core needs to be adapted (tell me if I'm wrong).

Probably not. Creating a new @universal-middleware/uwebsockets should be enough.

I'll let you know when I'll start working on it, but it's not on my priority list right now.

@rtritto rtritto deleted the uws branch November 27, 2024 12:37
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Feature] Support to uWebSockets.js
3 participants