Skip to content

quantified-uncertainty/squiggle

Repository files navigation

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.

Public packages

All packages that are published to npm 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/vscode-ext is the VS Code extension for writing estimation functions. It's not published to npm, but it's published to the VS Code Marketplace.

Applications

Applications (usually built with Next.js) can be found in apps.

  • apps/website is the main documentation website for Squiggle. It is hosted at squiggle-language.com.
  • apps/hub is the code behind Squiggle Hub.

Internal packages

Internal packages (not published to npm) can be found in internal-packages.

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.