Skip to content

garrythezany/rust-plus-golang

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust + Golang


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

Run make build and then ./main to see Rust + Golang 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 Golang 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.

Releases

No releases published

Packages

No packages published

Languages

  • Rust 41.8%
  • Makefile 33.6%
  • Go 20.9%
  • C 3.7%