meganz / sdk

MEGA C++ SDK
BSD 2-Clause "Simplified" License
1.32k stars 504 forks source link

Golang swig bindings #2653

Open nielsproest opened 9 months ago

nielsproest commented 9 months ago

This is a PR which adds the flag --enable-go to configure which builds SWIG golang bindings. The api has some oddities given that many function just take interface{} types, but given that they correspond to the c++ types its not a problem. There still are some linker weirdness like having to manually set LD_LIBRARY_PATH

EDIT: There isn't much more to do except find out how to build working static libraries and how to package it. The issue with building static is that it cant find sqlite3 for some reason (its static so it should be included?) The issue with packaging is that golang usually relies on a seperate repo, so while i have made the proper symlinks, you would need to create a new github repo containing files: mega.go, the wrappers, packaging.go and the src/include folder for headers.