reference-types VS prql

Compare reference-types vs prql and see what are their differences.

reference-types

Proposal for adding basic reference types (anyref) (by WebAssembly)

prql

PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement (by PRQL)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
reference-types prql
9 106
151 9,436
- 0.8%
5.3 9.9
over 2 years ago 3 days ago
WebAssembly Rust
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

reference-types

Posts with mentions or reviews of reference-types. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-03.
  • Old CSS, new CSS (2020)
    1 project | news.ycombinator.com | 13 Apr 2024
    > It could be an interesting use case for WASM if the problem of passing data into the WASM VM cheaply (perhaps by reference) can be solved.

    WASM Reference Types should hopefully solve this. The WASM working group seems to have some good momentum - so I'm hopeful this (or a similar replacement spec) will land sooner rather than later.

    https://github.com/WebAssembly/reference-types/blob/master/p...

  • Bring garbage collected programming languages efficiently to WebAssembly
    16 projects | news.ycombinator.com | 3 Nov 2023
    AFAIK GC is irrelevant for "direct DOM access", you would rather want to hop into the following rabbit hole:

    - reference types: https://github.com/WebAssembly/reference-types/blob/master/p...

    - interface types (inactive): https://github.com/WebAssembly/interface-types/blob/main/pro...

    - component model: https://github.com/WebAssembly/component-model

    If this looks like a mess, that's because it is. Compared to that, the current solution to go through a Javascript shim doesn't look too bad IMHO.

  • Extism: Make all software programmable with WebAssembly
    14 projects | news.ycombinator.com | 1 Dec 2022
    [1]: https://github.com/WebAssembly/proposals

    A glance of the overview and spec seems to indicate that WASM will provide some primitive data types, and any GC language can build their implementation on top of it. As I understand it, it's heavily based on Reference Types[3], which allows acting on host-provided types, and is already considered part of the spec [4]. It doesn't remove the need for the 5 different runtimes to have their own GC, but it lowers the bulk that the runtimes need to carry around, and offloads some of that onto the WASM runtime instead.

    [3]: https://github.com/WebAssembly/reference-types/blob/master/p...

  • Struggling to find yew benchmarks
    2 projects | /r/rust | 4 Sep 2022
    They've talked about interface types, and added reference types, which is a stepping stone toward the GC extension proposal, which would be a stepping stone toward manipulating the DOM from the WebAssembly side, but their official roadmap page is more short-term.
  • Blazor WASM and privacy
    1 project | /r/dotnet | 6 Nov 2021
    Nope, WASM reference types, it has nothing to do with .NET type system.
  • FFmpeg for browser and node, powered by WebAssembly
    6 projects | news.ycombinator.com | 20 Aug 2021
    > And there's been talk of exposing the JS GC to wasm for a few years. Hopefully when that stuff lands, it'll get easier to marshal objects across the gap.

    You don't need a Wasm GC to do this. If you only need js objects to pass on to, say, the host's function or check is null or not, then reference types that are opaque external references: https://github.com/WebAssembly/reference-types/blob/master/p...

    You can even do many more things if you export `Reflect` to WebAssembly: https://github.com/AssemblyScript/assemblyscript/blob/main/t...

    Reference Types are available almost everywhere already (In Safari will be available after 15.0): https://webassembly.org/roadmap

  • WebContainers: Run Node.js natively in the browser
    11 projects | news.ycombinator.com | 20 May 2021
  • Cranelift, Part 3: Correctness in Register Allocation
    4 projects | /r/rust | 15 Mar 2021
    Re: GC -- yes, indeed, the whole business with safepoints arose from the need to support Wasm reference types as a backend for Wasmtime or Firefox. No safepoints are needed for Rust (or other C-like) code.
  • Wasmer 1.0 released, the fastest WebAssembly VM, cross-compilation, headless, native object engine, AOT compilers and more!
    11 projects | /r/programming | 7 Jan 2021
    Reference Types,

prql

Posts with mentions or reviews of prql. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-30.
  • Prolog language for PostgreSQL proof of concept
    7 projects | news.ycombinator.com | 30 Mar 2024
  • SQL is syntactic sugar for relational algebra
    2 projects | news.ycombinator.com | 23 Mar 2024
    > I completely attribute this to SQL being difficult or "backwards" to parse. I mean backwards in the way that in SQL you start with what you want first (the SELECT) rather than what you have and widdling it down.

    > The turning point for me was to just accept SQL for what it is.

    Or just write PRQL and compile it to SQL

    https://github.com/PRQL/prql

  • Transpile Any SQL to PostgreSQL Dialect
    7 projects | news.ycombinator.com | 18 Mar 2024
  • Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
    11 projects | news.ycombinator.com | 15 Mar 2024
    Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: https://pretzelai.github.io/ (static hosted webpage) or see a demo video here: https://www.youtube.com/watch?v=73wNEun_L7w

    You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.

    Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: https://imgur.com/a/qO4yURI

    In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.

    We wanted Pretzel to run locally in the browser and be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: https://github.com/leeoniya/uDSV) and use DuckDB-Wasm (https://github.com/duckdb/duckdb-wasm) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (https://prql-lang.org/) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).

    There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.

    Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.

    There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d love for you to try this and to get your feedback!

  • Pql, a pipelined query language that compiles to SQL (written in Go)
    6 projects | news.ycombinator.com | 28 Feb 2024
    > Looks like PRQL doesn't have a Go library so I guess they just really wanted something in Go?

    There's some C bindings and the example in the README shows integration with Go:

    https://github.com/PRQL/prql/tree/main/prqlc/bindings/prqlc-...

  • FLaNK Stack 26 February 2024
    50 projects | dev.to | 26 Feb 2024
  • FLaNK Stack Weekly 19 Feb 2024
    50 projects | dev.to | 19 Feb 2024
  • PRQL as a DuckDB Extension
    3 projects | news.ycombinator.com | 25 Jan 2024
    Can someone tell me why PRQL is better? I went here: https://github.com/PRQL/prql

    It looks nice, but what's the strengths compared to SQL?

  • Shouldn't FROM come before SELECT in SQL?
    2 projects | news.ycombinator.com | 25 Jan 2024
    PRQL [1] is a compile-to-SQL relational querying language that puts FROM first.

    [1] https://prql-lang.org

  • Vanna.ai: Chat with your SQL database
    13 projects | news.ycombinator.com | 14 Jan 2024
    https://prql-lang.org/ might be an answer for this. As a cross-database pipelined language, it would allow RAG to be intermixed with the query, and the syntax may(?) be more reliable to generate

What are some alternatives?

When comparing reference-types and prql you can also consider the following projects:

assemblyscript - A TypeScript-like language for WebAssembly.

malloy - Malloy is an experimental language for describing data relationships and transformations.

wasmtime - A fast and secure runtime for WebAssembly

Preql - An interpreted relational query language that compiles to SQL.

ffmpeg.wasm - FFmpeg for browser, powered by WebAssembly

bustub - The BusTub Relational Database Management System (Educational)

proposals - Tracking WebAssembly proposals

tresql - Shorthand SQL/JDBC wrapper language, providing nested results as JSON and more

schism - A self-hosting Scheme to WebAssembly compiler

spyql - Query data on the command line with SQL-like SELECTs powered by Python expressions

webcontainer-core - Dev environments. In your web app.

toydb - Distributed SQL database in Rust, written as a learning project