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

feature: Use QuickJS instead of V8 #1690

Closed
tusharmath opened this issue Apr 10, 2024 · 19 comments · Fixed by #1713
Closed

feature: Use QuickJS instead of V8 #1690

tusharmath opened this issue Apr 10, 2024 · 19 comments · Fixed by #1713

Comments

@tusharmath
Copy link
Contributor

tusharmath commented Apr 10, 2024

Migrate from the current JS implementation to use QuickJS.

Technical Requirements

Additional Details

@tusharmath
Copy link
Contributor Author

/bounty 350$

Copy link

algora-pbc bot commented Apr 10, 2024

💎 $350 bounty created by tailcallhq
🙋 If you start working on this, comment /attempt #1690 along with your implementation plan
👉 To claim this bounty, submit a pull request that includes the text /claim #1690 somewhere in its body

🙏 Thank you for contributing to tailcallhq/tailcall!.
🧐 Checkout our guidelines before you get started.

Attempt Started (GMT+0) Solution
🔴 @webbdays Apr 10, 2024, 4:24:53 PM WIP
🔴 @abhishek818 Apr 10, 2024, 4:25:34 PM WIP
🟡 @mayant15 Apr 11, 2024, 7:47:11 AM #1713

@webbdays
Copy link
Contributor

webbdays commented Apr 10, 2024

/attempt
I will try.

Algora profile Completed bounties Tech Active attempts Options
@webbdays 1 tailcallhq bounty
Python, Rust,
HTML & more
Cancel attempt

@abhishek818
Copy link

abhishek818 commented Apr 10, 2024

/attempt #1690

Algora profile Completed bounties Tech Active attempts Options
@abhishek818 3 bounties from 3 projects
JavaScript, TypeScript
Cancel attempt

Copy link

algora-pbc bot commented Apr 10, 2024

Note

The user @webbdays is already attempting to complete issue #1690 and claim the bounty. We recommend checking in on @webbdays's progress, and potentially collaborating, before starting a new solution.

@webbdays
Copy link
Contributor

@abhishek818
I will try first, if no pr from me by tomorrow.
it is up for grabs.

@ologbonowiwi
Copy link
Contributor

On the queue. As my main focus is Node, it'd be very fun to work on this 😄

@webbdays
Copy link
Contributor

@abhishek818
@ologbonowiwi
i am dropping.

@webbdays
Copy link
Contributor

webbdays commented Apr 10, 2024

this might be helpful for console.log functionality in handlers.
DelSkayn/rquickjs#97

@ologbonowiwi
Copy link
Contributor

@tusharmath, why not use a node-compatible runtime?

Having non-V8-based/backward compatibility can bring issues for users, as everyone is already used to V8 and knows how it works.

If we move forward in getting something non-V8 compatible, we need extensive examples/docs from the users. If I were using JS with tailcall and suddenly my stuff stopped working because of a different runtime, I'd think deeply about dropping from tailcall.

@webbdays
Copy link
Contributor

webbdays commented Apr 10, 2024

as the doc says
http filter feature is for only simple req/resp modifications.
Any example for diff where it breaks?

@ologbonowiwi
Copy link
Contributor

I don't have any examples @webbdays, nor I'm sure it'll break 😅

Only adding this concern to the discussion 🚀

@tusharmath
Copy link
Contributor Author

@tusharmath, why not use a node-compatible runtime?

Node is an independent runtime, nothing is truly node compatible, not even deno or bunjs. Tailcall doesn't need to be a full-fledged JS runtime because JS is just used to write light weight logic to modify requests and responses.

Having non-V8-based/backward compatibility can bring issues for users, as everyone is already used to V8 and knows how it works.

V8 and QuickJS might not be all that different. Here is the feature comparison https://test262.fyi/#|v8,qjs

If we move forward in getting something non-V8 compatible, we need extensive examples/docs from the users. If I were using JS with tailcall and suddenly my stuff stopped working because of a different runtime, I'd think deeply about dropping from tailcall.

I don't think users even know if they are on v8 or not. QuickJS has a reasonable coverage of features, so I don't things will just stop working.

Also checkout what AWS is doing in their LLRT https://github.com/awslabs/llrt/blob/main/Cargo.toml#L21

@mayant15
Copy link
Contributor

mayant15 commented Apr 11, 2024

/attempt

Algora profile Completed bounties Tech Active attempts Options
@mayant15 2 tailcallhq bounties
Java, Rust,
C# & more
Cancel attempt

Copy link

algora-pbc bot commented Apr 11, 2024

Note

The user @abhishek818 is already attempting to complete issue #1690 and claim the bounty. We recommend checking in on @abhishek818's progress, and potentially collaborating, before starting a new solution.

Copy link

algora-pbc bot commented Apr 11, 2024

@abhishek818: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

Copy link

algora-pbc bot commented Apr 12, 2024

@mayant15: Reminder that in 1 days the bounty will become up for grabs, so please submit a pull request before then 🙏

Copy link

algora-pbc bot commented Apr 12, 2024

💡 @mayant15 submitted a pull request that claims the bounty. You can visit your bounty board to reward.

Copy link

algora-pbc bot commented May 4, 2024

🎉🎈 @mayant15 has been awarded $350! 🎈🎊

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

Successfully merging a pull request may close this issue.

5 participants