首页 > 其他分享 >rustler 简单试用

rustler 简单试用

时间:2024-01-03 12:33:29浏览次数:28  
标签:do nif dalong mix 试用 https 简单 rustler

昨天简单说了基于mrml 包装的elixir mjml_nif 模块,其中使用了rustler 进行elixir 与rust 的构建集成(基于了nif)
以下是一个简单的rustler 学习试用

项目准备

基于mix 初始化

  • 初始化项目

 

mix  new dalong
  • 添加依赖
    mix.exs

 


defp deps do
  [
    {:rustler, "~> 0.30.0"}
  ]

执行依赖更新

mix deps.get
  • 初始化rust cargo native 项目
    安装完rustler之后会包含一个mix 的task,可以进行初始化

 

mix rustler.new

按照提示操作,注意需要符合elixir 模块的命名
效果

rustler 简单试用_参考资料

生成的代码
native/dalong/src/lib.rs

 

defmodule Dalong do
  use Rustler, otp_app: :dalong, crate: "dalong"
  # When your NIF is loaded, it will override this function.
  def add(_a, _b), do: :erlang.nif_error(:nif_not_loaded)
  def hello do
    :world
  end
end
测试
iex -S mix
fn add(a: i64, b: i64) -> i64 {

效果

rustler 简单试用_参考资料_02

说明

以上是一个简单的试用,实际上调用需要关注的东西还是比较多的,官方文档比较全,应该好好看看

参考资料

https://github.com/rusterlium/rustler
https://docs.rs/crate/rustler/latest
https://github.com/adoptoposs/mjml_nif
https://github.com/rusterlium/html5ever_elixir
https://github.com/rusterlium/NifIo

标签:do,nif,dalong,mix,试用,https,简单,rustler
From: https://blog.51cto.com/rongfengliang/9082131

相关文章

  • rustler-precompiled rustler 扩展工具简单说明
    已经简单说过mjml_nif使用了rustler+rustler-precompiled进行nif的构建,同时官方也写了一篇相关的博客进行介绍使用说明配置依赖defdepsdo[{:rustler_precompiled,"~>0.7"}]end配置native使用可以是一个独立的模块,命名上可以添加Native比较符合习惯 defmodul......
  • java调用rust 共享库的一些方法简单说明
    java与rust的调用,核心还是基于jni进行处理,rust社区实现了不少方便的工具可以提供rust到c的处理(比如生成头文件)以下是整理的一些资料,方便学习几个不错的包jni-rs 目前还在活跃更新中,同时github的start也比较多,同时不少开源软件在用,比如questdbrobusta 一个比较新的项目,使用......
  • elixir mjml_nif 试用
    mjml_nif是使用rustler包装的mrml基于了erlang的nif接口实现的elixir模块,同时为了方便预编译nif的使用,使用了rustler_precompiled,以下是一个简单的试用项目试用添加依赖defpdepsdo[{:mjml,"~>3.0"}]end代码集成lib/mail/rong.mail.exdefmoduleRo......
  • mrml python 以及webassembly 实现简单说明
    简单说明下mrmlpython以及webassembly的实现pythonpython是基于了pyo3,利用pyo3提供的能力,暴露了python模块参考处理//暴露的mrml模块#[pymodule]#[pyo3(name="mrml")]fnregister(_py:Python<'_>,m:&PyModule)->PyResult<()>{//mrml方法的注册m.ad......
  • Python pytest.main()运行测试用例
    前言前面一直使用命令行运行pytest用例,本篇来学下使用pytest.main()来运行测试用例pytest.main()args传一个list对象,list里面是多个命令行的参数plugins传一个list对象,list里面是初始化的时候需注册的插件不带参数运行importpytest#等同于命令行执行pytest#默认运行的是......
  • 3步建“多头”头寸,fpmarkets澳福建头寸就是这么简单
    交易中建立头寸就是这么简单,fpmarkets澳福今天分享 3步建“多头”头寸方法。首先,当一个相当大的头寸形成时,总会有一个趋势。交易本身只能通过不具信息性的市场交易量进行追踪。fpmarkets澳福认为当一个真实的交易量形成时,一个大投机者的头寸被分割成许多小订单,这就是为什么我们看......
  • 【C++】STL 容器 - stack 堆栈容器 ① ( stack 堆栈容器特点 | stack 堆栈容器与 dequ
    文章目录一、stack堆栈容器简介1、stack堆栈容器引入2、stack堆栈容器特点3、stack堆栈容器与deque双端数组容器对比二、代码示例-stack堆栈容器简单示例1、代码示例2、执行结果一、stack堆栈容器简介1、stack堆栈容器引入C++语言中的STL标准模板库中的stac......
  • 【操作系统】简单了解一下宏内核和微内核
    内核有哪些组成部分?宏内核和微内核的区别是什么?内核分层的目的是什么?计算机中资源主要包括软件资源和硬件资源,软件资源可以理解为各种各样的数据,那么硬件资源就是计算器的实际组成部分,主要可以分为下面这些部分:总线,负责连接其他设备,它是设备工作的基础CPU,中央处理器,负责执行程序和......
  • java 如何实现简单的知识图谱
    如何使用Java实现简单的知识图谱引言随着信息时代的快速发展,知识图谱成为了处理大数据和知识管理的重要工具。知识图谱是一种将实体、关系和属性组织起来的图形化表示方式,可以帮助我们更好地理解和利用知识。本文将介绍如何使用Java实现一个简单的知识图谱,并结合实际问题给出示例......
  • 将Python脚本打包成API通常可以使用一些框架和工具来简化这个过程。以下是一种使用Fla
    将Python脚本打包成API通常可以使用一些框架和工具来简化这个过程。以下是一种使用Flask框架创建简单API的方法:安装Flask:如果你还没有安装Flask,可以使用以下命令安装:pipinstallflask创建Flask应用:创建一个Python脚本,例如app.py,并使用以下代码创建一个简单的Flask应用:fromflas......