quickjs-hs: Wrapper for the QuickJS Javascript Engine

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

This library is a wrapper for the QuickJS Javascript Engine.

To get started, see the ReadMe below.


[Skip to Readme]

Properties

Versions 0.1, 0.1.1, 0.1.2, 0.1.2.1, 0.1.2.1, 0.1.2.2, 0.1.2.3, 0.1.2.4
Change log ChangeLog.md
Dependencies aeson (>=1.1 && <1.6), base (>=4.9 && <5), bytestring (>=0.10 && <0.11), containers (>=0.5 && <0.7), exceptions (>=0.8 && <0.11), inline-c (>=0.5 && <0.10), mtl (>=2.2.2 && <2.3), scientific (>=0.3.5 && <0.4), string-conv (>=0.1.2 && <0.2), text (>=1.2.0 && <1.3), time (>=1.8 && <1.10), transformers (>=0.5 && <0.6), unliftio-core (>=0.1 && <0.2.1), unordered-containers (>=0.2.8 && <0.3), vector (>=0.12 && <0.13) [details]
License MIT
Copyright 2020 Sam Balco
Author Sam Balco
Maintainer goodlyrottenapple@gmail.com
Category Javascript
Home page https://github.com/goodlyrottenapple/quickjs-hs#readme
Bug tracker https://github.com/goodlyrottenapple/quickjs-hs/issues
Source repo head: git clone https://github.com/goodlyrottenapple/quickjs-hs
Uploaded by goodlyrottenapple at 2020-08-27T16:13:14Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for quickjs-hs-0.1.2.1

[back to package description]

quickjs-hs

Tests Cabal

This package provides a Haskell wrapper for the QuickJS Javascript Engine.

Features

The functionality is quite basic and is currently limited to:

Examples

Evaluate an expression:

import Quickjs

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

Declare a function and call it on an argument:

call_f = quickjs $ do
  _ <- eval_ "f = (x) => x+1"
  res <- eval "f(2)"
  liftIO $ print res

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

aeson_marshall = quickjs $ do
  _ <- eval_ "f = (x) => 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