wuchuguang / rust-plus-golang

Rust + Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rust + Go


This repository shows how, by combining cgo and Rust's FFI capabilities, we can call Rust code from Go.

Run make build and then ./main to see Rust + Go in action. You should see Hello John Smith! printed to stdout.

You can do this for your own project

Begin by creating a lib directory, where you will keep your Rust libraries. Andrew Oppenlander's article on creating a Rust dynamic library is a great introduction.

Then, you need to create a C header file for your library. Just copy the libc types that you used.

All that is left to do is to add some cgo-specific comments to your Go code. These comments tell cgo where to find the library and its headers.

/*
#cgo LDFLAGS: -L./lib -lhello
#include "./lib/hello.h"
*/
import "C"

There should not be a newline between */ and import "C".

A simple make build (use the Makefile in this repository) will result in a binary that loads your dynamic library.

About

Rust + Go

License:Do What The F*ck You Want To Public License


Languages

Language:Rust 56.4%Language:Makefile 21.5%Language:Go 18.8%Language:C++ 3.3%