ruster

MIT licensed Continuous integration

ruster is a library using ffi for database management with psql/pg_dump + mysql/mysqldump written in Rust.

The generated C static and shared libraries can be reused in other languages (Golang from example).

Build ruster

The build of project produces 2 go binaries, 1 static library (libruster.a) and 1 shared library (libruster.so).

The headers of C functions are in lib/ruster.h and must be present before code generation.

bash make build-shared

bash make build-static

Using ruster

```go /*

cgo LDFLAGS: -L./lib -lruster

include "./lib/ruster.h"

*/
import "C"

func main() {
os.Getenv("PGPASSWORD")
err := func() error {
C.pgdumpdatabase(
C.CString("localhost"),
C.CString("5432"),
C.CString("postgres"),
C.CString("postgres"),
C.CString("pgdump.sql"),
C.CString("true"),
);
return nil
}
if err() == nil {
func() {
C.psql
restoredatabase(
C.CString("localhost"),
C.CString("5432"),
C.CString("postgres"),
C.CString("postgres"),
C.CString("pg
dump.sql"),
C.CString("true"),
);
}()
}
} ```

Run ruster examples

bash make run-shared

bash make run-static

Bench

bash ./time main_shared ./time main_static

Tests

bash ./time test-rust-lib