/squiggle

An estimation language

Primary LanguageTypeScriptMIT LicenseMIT

Squiggle

Packages check npm version - lang npm version - components License: MIT codecov

A simple programming language for probabilistic estimation that runs on Javascript.

Get started

Our deployments

Packages

This monorepo has several packages that can be used for various purposes. All the packages can be found in packages.

  • @quri/squiggle-lang in packages/squiggle-lang contains the core language, particularly an interface to parse Squiggle expressions and return descriptions of distributions or results.
  • @quri/squiggle-ui in packages/ui has React components for common QURI projects.
  • @quri/squiggle-components in packages/components contains React components particularly meant to be used with Squiggle visualizations.
  • packages/website is the main documentation website for Squiggle. It is hosted at squiggle-language.com.
  • packages/hub is the code behind Squiggle Hub.
  • packages/vscode-ext is the VS Code extension for writing estimation functions.
  • packages/cli is an experimental way of using imports in Squiggle, which is also on npm.

Develop

For any project in the repo, begin by running pnpm install in the top level:

pnpm i

Then use turbo to build the specific packages or the entire monorepo:

turbo run build

Or:

cd packages/components
turbo run build

You can also run specific npm scripts for the package you're working on. See packages/*/README.md for the details.

Contributing

See CONTRIBUTING.md.