sokol-odin
wayland
sokol-odin | wayland | |
---|---|---|
4 | 11 | |
61 | 716 | |
- | - | |
8.9 | 7.4 | |
6 days ago | over 1 year ago | |
C | C | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
sokol-odin
-
Odin Programming Language
* etc
There is also the second issue that C is technically TWO languages: the C programming language and the C preprocessor. People mix the two together and things cannot be easily translated. A good basic example of this is people using `#define` for constants, and thus that name has no semantic meaning in the language itself. A translator has to try and make some semantic meaning from the intersection of these two languages, even if people don't make a distinction when making APIs.
And Odin's `foreign` system allows [1] for a lot of really nice things that most other languages cannot do so tersely. Here are two examples of demonstrating bindings of C libraries that feel as if they were native Odin libraries WITHOUT any wrappers:
* https://github.com/floooh/sokol-odin/blob/main/sokol/gfx/gfx... (and the rest)
-
Nim v2.0 Released
I maintain auto-generated bindings for my C libraries for Zig and Nim (and Odin and Rust - although the Rust bindings definitely need some love to make them a lot more idiomatic).
I think looking at the examples (which is essentially the same code in different languages) gives you a high level idea, but they only scratch the surface when it comes to language features (things like the Zig code not using comptime features):
Zig: https://github.com/floooh/sokol-zig/tree/master/src/examples
Nim: https://github.com/floooh/sokol-nim/tree/master/examples
Odin: https://github.com/floooh/sokol-odin/tree/main/examples
Rust: https://github.com/floooh/sokol-rust/tree/main/examples
-
I think Zig is hard but worth it
I'm actually dabbling with Odin a bit in the scope of language bindings for the sokol headers:
https://github.com/floooh/sokol-odin
It's a very enjoyable language!
-
I like the Odin programming language
I recently wrote a bindings generator to Odin for my C libraries, and the FFI is very well thought out, down to defining things like linker dependencies in the code. For instance see here:
https://github.com/floooh/sokol-odin/blob/main/sokol/gfx/gfx...
The only minor downside (compared to Zig) is that Odin still requires a separate C/C++ toolchain to actually build the C dependencies. But I guess that's a typical 1st-world-problem ;)
(but AFAIK Odins FFI system isn't in any way related or depending on LLVM).
wayland
-
wayland!!!!
source
- Help request: What is plasma shell and why is at using an entirewith no sign of stoppping?
- I like the Odin programming language
-
4chan /g/ on Wayland
Those that have contributed to "http://gitlab.freedesktop.org/wayland/wayland", especially those that are paid by Red Hat to contribute.
- Why use wayland over x11?
-
PipeWire 0.3.50 released
"Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol" (see https://gitlab.freedesktop.org/wayland/wayland)
- Asus will release a 17“ foldable OLED laptop
-
XWayland in proot
https://github.com/wayland-project/wayland Official wayland sources
- What is wayland and x11-repo? How to use them in termux?
- Request for Open Source Project Recommendation to get involved with that is a showcase for C language
What are some alternatives?
linux - Linux kernel source tree
X11 - A Haskell binding to the X11 graphics library.
mvb-opencv - Minimum Viable Bindings to OpenCV for Nim
termux-x11 - Not released and unmaintained Termux X11 add-on application.
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
wlr-randr - An xrandr clone for wlroots compositors
RFCs - A repository for your Nim proposals.
dwl - dwm for Wayland - ARCHIVE: development has moved to Codeberg
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
kanshi - Dynamic display configuration (mirror)
debug-trace-var - You do not have to write variable names twice in Debug.Trace
velox - velox window manager