Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose a pure C interface #11

Open
LoganDark opened this issue Jan 9, 2022 · 1 comment
Open

Expose a pure C interface #11

LoganDark opened this issue Jan 9, 2022 · 1 comment
Labels
enhancement New feature or request priority-low

Comments

@LoganDark
Copy link

C++ is nice, but one of its major disadvantages is that it's not easy or fun to FFI to it from other languages. Since name mangling, std::string layout, and so on are completely unspecified, other languages have a really really hard time interacting with C++ functions, even when the bindings are auto-generated by a C++ compiler.

waved needs to offer a C API - or else people simply won't be able to use it. The C API can't include any C++ classes/templates such as std::string, since that can't be created or touched by other languages.

All functionality of waved needs to be accessible - the C API should be the main interface (even if it uses C++ internally). If you do this right, not only will people be able to use it directly in applications but a robust display server can be implemented in a language like Rust with little friction.

@matteodelabre matteodelabre added the enhancement New feature or request label Jan 9, 2022
@matteodelabre
Copy link
Owner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request priority-low
Projects
None yet
Development

No branches or pull requests

2 participants