@hackage quickjs-hs0.1.2.4
Wrapper for the QuickJS Javascript Engine
Categories
License
MIT
Maintainer
goodlyrottenapple@gmail.com
Links
Versions
Installation
Dependencies (15)
- aeson >=1.1 && <1.6
- base >=4.11 && <5
- bytestring >=0.10 && <0.11
- containers >=0.5 && <0.7
- exceptions >=0.8 && <0.11
- inline-c >=0.5 && <0.10 Show all…
Dependents (1)
@hackage/exh
quickjs-hs
This package provides a Haskell wrapper for the 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 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