Skip to main content

Crate rustygo

Crate rustygo 

Source
Expand description

Runtime for Go packages compiled to Rust by the rustygo compiler.

Generated code is safe Rust and calls into this crate for everything Go has and Rust does not. The unsafe in the project lives here, the same way Rust’s own std confines it.

This crate is at the M0 spike stage (see docs/ROADMAP.md). What exists:

  • ops: Go integer semantics that differ from Rust’s (shifts, division).
  • print: the builtin print / println.
  • panic: Go panics carried on Rust unwinding.
  • rt: the process entry point for a Go main (std only).

Still to come, by milestone: the collector, Gc<T> / Ptr<T>, strings, slices, maps and interfaces (M1); goroutines, channels and timers (M2); the syscall layer and netpoller (M3).

§Features

  • std (default): hosted targets. Without it the crate is no_std + alloc.
  • gc-torture: debug collector that collects at every safe point.

Modules§

ops
Go integer semantics that Rust spells differently.
panic
Go panics, carried on Rust unwinding.
print
The builtin print and println.
rt
Process entry point for a compiled Go main package.