Code Monkey home page Code Monkey logo

elixir-rust-nif-starter's Introduction

Elixir Rust NIF Starter

Example application for implementing Rust NIFs in Elixir using the Elixir Rustler library with tweaks for Apple Silicon.

Installation

These are installation instructions for Mac OS, including some tweaks to get this to work on Apple Silicon using Homebrew.

Install Elixir

brew install rustup

Install Rust

brew install rustup

rustup-init

Create a new Elixir project

mix new nif_starter

add {:rustler, "~> 0.22.2"}

mix deps.get

Create a new Rust package

mix rustler new

Module Name > NifStarter

Library name > nif_starter

Update native/nif_starter/.cargo/config

If you are using Apple Silicon you will need to update the .cargo/config file to build the Rust package

[target.'cfg(target_os = "macos")']
rustflags = [
    "-C", "link-arg=-undefined",
    "-C", "link-arg=dynamic_lookup",
]

Install crates and build Rust package

cargo build

Open IEx and call the NIF

iex -S mix

NifStarter.add(1, 2)

Resources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.