mquickjs-hs: Wrapper for the Micro QuickJS JavaScript Engine

[ javascript, library, mit ] [ Propose Tags ] [ Report a vulnerability ]

This library is a wrapper for Micro QuickJS, a compact JavaScript Engine.

To get started, see the Readme below.


[Skip to Readme]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.2.4
Change log changelog.md
Dependencies aeson (>=2.0 && <2.3), base (>=4.11 && <5), bytestring (>=0.10 && <0.13), containers (>=0.5 && <0.8), exceptions (>=0.8 && <0.11), inline-c (>=0.5 && <0.10), mtl (>=2.2.2 && <2.4), scientific (>=0.3.5 && <0.4), string-conv (>=0.1.2 && <0.3), text (>=1.2.0 && <2.2), time (>=1.8 && <1.14), transformers (>=0.5 && <0.7), unliftio-core (>=0.1 && <0.3), unordered-containers (>=0.2.8 && <0.3), vector (>=0.12 && <0.14) [details]
License MIT
Copyright 2020 Sam Balco, 2026 Adrian Sieber
Author Sam Balco, Adrian Sieber
Maintainer haskell@ad-si.com
Uploaded by adrian at 2026-01-14T15:09:37Z
Category JavaScript
Home page https://github.com/ad-si/mquickjs-hs#readme
Bug tracker https://github.com/ad-si/mquickjs-hs/issues
Source repo head: git clone https://github.com/ad-si/mquickjs-hs
Distributions
Downloads 0 total (0 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for mquickjs-hs-0.1.2.4

[back to package description]

mquickjs-hs

This package provides a Haskell wrapper for the Micro QuickJS JavaScript Engine. It has been inspired by the quickjs-rs and ocaml-quickjs libraries.

Features

The functionality is quite basic and is currently limited to:

  • Evaluating JS code
  • Calling a JS function in the global scope
  • Marshalling Aeson Values to and from JSValues.

Examples

Evaluate an expression:

import MQuickJS

one_plus_two = mquickjs $ do
  res <- eval "1+2"
  liftIO $ print res

Declare a function and call it on an argument:

call_f = mquickjs $ do
  _ <- eval_ "function f(x) { return x + 1; }"
  res <- eval "f(2)"
  liftIO $ print res

Pass a Haskell value (which has a ToJSON instance) to the JS runtime:

aeson_marshall = mquickjs $ do
  _ <- eval_ "function f(x) { return x + 1; }"
  res <- withJSValue (3::Int) $ \x -> call "f" [x]
  liftIO $ print res

Contributing

Please feel free to report bugs/submit feature requests via the github issue tracker and submit any pull requests to the git repository.