duckdb-wasm VS calculang

Compare duckdb-wasm vs calculang and see what are their differences.

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
duckdb-wasm calculang
11 5
924 39
5.2% -
9.5 4.6
3 days ago 5 months ago
C++ JavaScript
MIT License GNU Affero General Public License v3.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.

duckdb-wasm

Posts with mentions or reviews of duckdb-wasm. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-22.
  • Parquet-WASM: Rust-based WebAssembly bindings to read and write Parquet data
    5 projects | news.ycombinator.com | 22 Apr 2024
    i think duckdb-wasm is closer to 6MB over wire, but ~36MB once decompressed. (see net panel when loading https://shell.duckdb.org/)

    the decompressed size should be okay since it's not the same as parsing and JITing 36MB of JS.

  • 42.parquet ā€“ A Zip Bomb for the Big Data Age
    1 project | news.ycombinator.com | 26 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!

  • DuckDB-WASM: WebAssembly Version of DuckDB
    1 project | news.ycombinator.com | 22 Jan 2024
  • Show HN: DuckDB-WASM, execute queries in a browser, and share them as links
    1 project | news.ycombinator.com | 19 Dec 2023
    Amazing, I was eagerly waiting for this one. Loading extensions in previous DuckDB-WASM releases didn't work seamlessly. Looks like now it's the case :D

    ref: https://github.com/duckdb/duckdb-wasm/issues/1542#issuecomme...

    Thanks!!

  • DuckDB 0.9.0
    3 projects | news.ycombinator.com | 26 Sep 2023
    Btw, it's already happening:

    Go to https://shell.duckdb.org, and type

  • Does anyone else hate Pandas?
    2 projects | /r/dataengineering | 11 Jun 2023
    I like Pandas, but you will love duckdb, which is solving this exact problem: https://duckdb.org/; https://shell.duckdb.org/
  • [Question] Using DuckDB to connect to (external/cloud) Postgres DB
    1 project | /r/learnpython | 24 May 2023
    There's also https://shell.duckdb.org/ for playing around.
  • Ask HN: What tech is under the radar with all attention on ChatGPT etc.
    6 projects | news.ycombinator.com | 2 May 2023
  • My first Rust project: Xlsx-wasm-parser. A WebAssembly-wrapper around the Calamine crate to bring Blazingly Fast Excel deserialization to the Browser and NodeJS.
    2 projects | /r/rust | 28 Mar 2023
    I know xls != csv, but would be cool to compare against https://github.com/duckdb/duckdb-wasm as well

calculang

Posts with mentions or reviews of calculang. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-15.
  • Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
    11 projects | news.ycombinator.com | 15 Mar 2024
  • Dynamic programming in Haskell: automatic memoization
    2 projects | news.ycombinator.com | 20 Jun 2023
    I develop calculang, a language for calculations. It converts concise formulae into Javascript.

    Since calculation formulae are usually inherently pure, a `--memo` flag to the compiler memoizes the lot.

    Many of my models are written in this recursive style and only work because of memoization. Sometimes other tricks are needed e.g. careful ordering of the calls, so that the memo is available before the stack breaks.

    My first calculang example is a bouncing ball: the position at t depends speed and the position at t-1. With loops we'll usually discover the same thing, but it's so much harder to follow.

    First-class memoization to proliferate this style is a really neat thing.

    [0] https://github.com/calculang/calculang

    [1] bouncing ball code: https://github.com/declann/calculang-miscellaneous-models/bl...

    [2] bouncing ball initial post: https://observablehq.com/@declann/calculang-bouncing-ball?co...

    [3] if you can tolerate my slow-load WIP devtools and are on a Desktop, this is better, with buttons to navigate through the model development (only some of which are working now!): https://models-on-a-plane.pages.dev/stories/bounce/

  • AI intensifies fight against ā€˜paper millsā€™ that churn out fake research
    1 project | news.ycombinator.com | 31 May 2023
    My instinct about numbers (i.e. incl. statistics) is that they should be reproducible: on-demand, with results and workings easily subjected to interrogation.

    In reality in many fields - my experience is in finance, but also in science - calculations are scattered across different languages and systems. This adds friction to any process about reproducing, understanding, analysing numbers.

    This is some motivation for calculang, a language for calculations I develop. https://github.com/calculang/calculang

    For the HN crew it's an under-development(!) functional language with properties to permit flexible designs that can scale. It's for numbers and if you share the model alongside your numbers people can check them according to the model and see the workings.

    It goes well with visual number [dev/person]tools that I will release one of soon, and in the future watch for a browser extension for the workings behind numbers you are reading.

    Important, it won't address the raw data part of the problem, but where numbers following from that are concerned, it might get closer to that instinct.

  • Ask HN: Those making $0/month or less on side projects ā€“ Show and tell
    95 projects | news.ycombinator.com | 27 Jan 2023
    I'm developing calculang, a language for calculations: https://github.com/calculang/calculang

    I've made some examples here: https://observablehq.com/collection/@declann/calculang

    Some tooling work for visualizations and for showing the workings will be released in the next weeks.

    There are no positive money flows; I've spent many years experimenting, developing, and now 1 year after a public release the twitter page where I make announcements has 24 followers: https://twitter.com/calculang

    I'm a modelling consultant - I work with numbers, I think they should be simple, but they are disjointed across systems and entities and programming languages and spreadsheets. The friction accumulates everywhere: to get a simple result, to follow the workings, to do any analysis, to share one or the other.

  • How to store your app's entire state in the url
    17 projects | news.ycombinator.com | 9 Jan 2023
    I'm developing more tools to these ends, via my overarching project calculang, a language for calculations [1].

    I also have a loan/repayment validator [2] but haven't added this QR code feature yet.

    Bank letters e.g. "Interest rates are rising and now we want 100e more per month, every month" could use a QR code to an independent validator or to see the workings behind the 100 calculation.

    Not using this in the real world now and there are security considerations to keep in mind, but reading state from a URL facilitates the usecase, QR codes that link physical numbers to their calculation and model.

    Implementation of payroll calculator is an Observable notebook and thankfully it neatly supports all my strict requirements as a QR code demo.

    [0] https://observablehq.com/@declann/payroll-playground-ireland...

    +Feature tweet: https://twitter.com/calculang/status/1608183731533107206

    [1] https://github.com/calculang/calculang

    [2] https://observablehq.com/@declann/loan-validator-dev

What are some alternatives?

When comparing duckdb-wasm and calculang you can also consider the following projects:

web-llm - Bringing large-language models and chat to web browsers. Everything runs inside the browser with no server support.

summonscript - Manifest manifold models with magical machinations.

mutable - A Database System for Research and Fast Prototyping

CozeJS - Coze Javascript - cryptographic JSON messaging specification

chdb - chDB is an embedded OLAP SQL Engine šŸš€ powered by ClickHouse

graphic-walker - An open source alternative to Tableau. Embeddable visual analytic

ch32v003fun - An open source software development stack for the CH32V003 10Ā¢ 48 MHz RISC-V Microcontroller - as well as many other chips within the ch32v/x line.

URLFormJS - URLFormJS - Create sticky forms, stateful applications, and shareable links.

bacalhau - Compute over Data framework for public, transparent, and optionally verifiable computation

sveltekit-search-params - The easiest way to read and WRITE from query parameters in sveltekit.

duckdb - DuckDB is an in-process SQL OLAP Database Management System

u - Ī¼ is a JavaScript library for encoding/decoding state (JavaScript object) in URL