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

rustler 简单试用

时间:2023-12-29 10:58:05浏览次数:34  
标签: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 模块的命名
效果

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

 
#[rustler::nif]
fn add(a: i64, b: i64) -> i64 {
    a + b
}
rustler::init!("Elixir.Dalong", [add]);
  • 调用
    建议先执行mix compile
    lib/dalong.ex
 
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

效果

说明

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

参考资料

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://www.cnblogs.com/rongfengliang/p/17934281.html

相关文章

  • SpringMVC集成pageofficeV6最简单步骤
    转载:PageOffice最简单的集成代码(SpringMVC)#PageOffice最简单的集成代码(SpringMVC)本文描述了PageOffice产品在SpringMVC项目中如何集成调用。新建SpringMVC项目:pageoffice6-springmvc-simple在您项目的pom.xml中通过下面的代码引入PageOffice依赖。pageoffice.jar已发布到......
  • Java Spring Boot Mybatis-Plus 的简单使用
    此文主要基于官网case整理,如需了解更多详情,请移步官网。环境:SpringBoot:3.1.6JDK:17MySQL:5.7数据准备主要是MySQL建库建表,插入一些数据。建库:CREATEDATABASEmybatis_demo;建表:DROPTABLEIFEXISTS`user`;CREATETABLE`user`(idBIGINTNOTNULLCOMME......
  • elixir mjml_nif 试用
    mjml_nif是使用rustler包装的mrml基于了erlang的nif接口实现的elixir模块,同时为了方便预编译nif的使用,使用了rustler_precompiled,以下是一个简单的试用项目试用添加依赖 defpdepsdo[{:mjml,"~>3.0"}]end代码集......
  • 开发一个简单易用的SDK的详细步骤(超详细,超适用)
    开发一个简单易用的SDK的详细步骤创建starter步骤1.新建一个springboot初始化项目 2.添加依赖,Lombok,SpringConfigurationProcessorSpringConfigurationProcessor的作用是自动生成代码提示 3.修改pom文件的版本号,并删除build 4.删除原本自动创建的主类,新......
  • ASP.NET Core 授权一(简单的Cookie)
    Cookie1.HTTP无连接无状态,Cookie和Session就是解决此问题。2.客户端向服务器端发送一个请求的时,服务端向客户端发送一个Cookie然后浏览器将Cookie保存,之后每次HTTP请求浏览器都会将Cookie发送给服务器端,需要衡量把什么数据放到cookie中,很多数据并不是每次请求都需要发给服务端,......
  • Python - 输出一个最简单的log
    输出一个最简单的log点击查看代码importlogging#创建logger对象logger=logging.getLogger(__name__)logger.setLevel(logging.DEBUG)#log等级总开关#log输出格式formatter=logging.Formatter("%(asctime)s-%(filename)s[line:%(lineno)d]-%(levelname)s:......
  • 什么是仿真软件?推荐几个简单易上手的几款CAE软件!
    什么是仿真软件?仿真软件(CAE软件)是一种用于模拟和模仿真实世界系统或过程的计算机程序。这些软件可以用来模拟物理系统、工程系统、商业流程等各种领域的系统。通过仿真软件,用户可以对系统进行实时的模拟、分析和测试,以便更好地理解系统的行为和性能,以及进行系统的优化和改进。仿真......
  • FX5-40SSC简单运动模块
    下面简单介绍使用FX5-40SSC时如何进行编程。我们将看到,到处都是模块缓冲存储器的地址。简易运动控制模块的编程主要通过刷写缓冲存储器来实现。简易运动控制模块的编程主要通过刷写缓冲存储器来实现。简易运动控制模块的编程主要通过刷写缓冲存储器来实现。重要事情说三遍.........
  • 软件测试/测试开发|一文告诉你什么是测试用例
    前言对于一个测试工程师来说,测试用例的编写是一项必须掌握的能力,但有效的设计和熟练的编写确实一项十分复杂的技术。不仅需要掌握软件测试技术和流程,而且还要对整个软件不管从业务,还是对软件的设计,程序模块的结构,功能规格等说明都要有透彻的理解。测试的设计方法不是单独存在的,......
  • Electron简单使用
    Electron是一个使用JavaScript、HTML和CSS构建桌面应用程序的框架。嵌入 Chromium 和 Node.js 到二进制的Electron允许您保持一个JavaScript代码代码库并创建在Windows上运行的跨平台应用macOS和Linux——不需要本地开发经验。Electron继承了来自Chromium的......