-
Notifications
You must be signed in to change notification settings - Fork 1
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
Canonical PRQL go
library
#1
Comments
Hi @max-sixty, It is my understanding that the Go community is, in general, a bit averse to using CGO when there are alternatives. https://dave.cheney.net/2016/01/18/cgo-is-not-go is a good summary of the complexity added by using CGO. That said, there are quite a few successful Go libraries that use CGO, and it wouldn't take much to take what's already there in the An alternative, is to use WebAssembly as some kind of FFI. For the initial version, I went with using Wasi as the guest/host interface, as it is straightforward to implement on the guest side (Rust), especially for a Rust beginner like me. With a larger API surface ( It would look very similar to what's already in
In my early experiments, the Regardless of the approach chosen, I don't have a good sense as to how the wasm binary should be published/integrated in the Go package. I went the manual route here, but for anything serious, a more sustainable approach is probably required. As a next step, I'll make another attempt at using a standard Wasm binary (non Wasi) and tag you on the relevant PRs. Thanks for reaching out! |
Awesome @pims ! Interesting tradeoff re Not specific to this project, but I had been hoping that WASM would be good at this sort of thing — allowing easy™ interop with a small-n performance hit. So great if Lmk anything you need from our side. If you do get this done, happy to update docs & the website to point here for the Go bindings. |
Hi there, from the PRQL project! This looks great, thanks for putting it together.
I don't have much context on the best approach for PRQL & Go, having not written much Go. Our current version is not easy to use — you can't just install a
go
dependency like folks can with python or JS.So to the extent this is a better approach, we're happy to pursue that as the canonical approach for folks using
go
; let us know if you have thoughts.Thanks!
The text was updated successfully, but these errors were encountered: