/squiggle

An estimation language

Primary LanguageTypeScriptMIT LicenseMIT

Squiggle

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

An estimation language.

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-components in packages/components contains React components that can be passed squiggle strings as props, and return a presentation of the result of the calculation.
  • packages/website is the main descriptive website for squiggle, it is hosted at squiggle-language.com.
  • 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 yarn in the top level

yarn

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

turbo run build

Or:

turbo run build --filter=@quri/squiggle-components

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

NixOS users

This repository requires the use of bundled binaries from node_modules, which are not linked statically. The easiest way to get them working is to enable nix-ld.

Contributing

See CONTRIBUTING.md.