Need help with inline-rust?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

harpocrates
206 Stars 6 Forks Other 48 Commits 13 Opened issues

Description

Use snippets of Rust inline in your Haskell programs

Services available

!
?

Need anything else?

Contributors list

inline-rust

Build Status Windows build status

This package allows you to write Rust inline in your Haskell source using quasiquotes. Here is a short example. For more examples, check out the examples folder.

-- examples/Hello.hs
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-}

module Main where

import Language.Rust.Inline import Data.Int

extendContext basic setCrateRoot []

main = do putStrLn "Haskell: Hello. Enter a number:" x

If you want to use this with GHCi, make sure to pass in

-fobject-code
.

Building

This currently depends on a GHC feature that will be available in GHC 8.6. Until then, you'll have to build GHC yourself or get a binary. For the latter, you can install one of GHC's nightly builds.

$ curl https://ghc-artifacts.s3.amazonaws.com/nightly/validate-x86_64-darwin/latest/bindist.tar.xz | tar xz
$ cd ghc-*
$ ./configure && make install

With that installed, something like the following should work

$ cabal new-build -w /usr/local/bin/ghc-8.5.20180423
$ cabal new-test  -w /usr/local/bin/ghc-8.5.20180423

Running the examples is only a matter of threading through the right package databases. With a new enough Cabal,

new-exec
does this for you.
$ cabal new-exec -w /usr/local/bin/ghc-8.5.20180423 ghc -- -threaded -package inline-rust examples/Hello.hs
[1 of 1] Compiling Main             ( examples/Hello.hs, examples/Hello.o )
Linking examples/Hello ...
$ ./examples/Hello
Haskell: Hello. Enter a number:
42
Rust: Your number is 42
Haskell: Rust says number plus 1 is 43

Bugs

Please report bugs to the issue tracker

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.