sokol-odin
skim
sokol-odin | skim | |
---|---|---|
4 | 27 | |
61 | 4,859 | |
- | - | |
8.9 | 0.0 | |
6 days ago | about 1 month ago | |
C | Rust | |
- | MIT License |
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).
skim
-
Bash Menu
I really like using something like fuzzy search for menus like these. https://github.com/Cloudef/bemenu is pretty cool in that it works both in a terminal, X11 and on Wayland, so if you want to do something graphical later you can easily migrate. There's also fzf and skim, which work similarly but are only for the terminal.
-
FzfLua Quickstart: it's never been easier to try out fzf-lua
Current profiles (to be improved upon): | Profile | Details | | ---------------- | ------------------------------------------ | | default | fzf-lua defaults, uses neovim "builtin" previewer and devicons (if available) for git/files/buffers | | fzf-native | utilizes fzf's native previewing ability in the terminal where possible using bat for previews | | fzf-tmux | similar to fzf-native and opens in a tmux popup (requires tmux > 3.2) | | max-perf | similar to fzf-native and disables icons globally for max performance | | telescope | closest match to telescope defaults in look and feel and keybinds | | skim | uses skim as an fzf alternative, (requires the sk binary) |
-
Is there a way to unravel a filepath based on a known end file?
There’s also a variety of fuzzy finders like https://github.com/lotabout/skim or fzf. Basically the same thing, but different interface.
-
I wrote a "12 favourite terminal tools" list-article, what did I left out that should be absolutely included?
Have you ever tried sk? skim is an fzf re-write in 🦞. While I use it occasionally, I never really incorporated fzf into my workflow so I'd be interested to hear your opinion.
-
Zsh history syntax highlighting on fzf-history-widget?
I’m not familiar at all with fzf, but I do know that skim supports this.
- CLI Item Selection Interface?
-
I like the Odin programming language
You state that as a blank and white fact, but there's nuance.
https://github.com/lotabout/skim/issues/317#issuecomment-652...
- Dig, but in Rust
-
Rustaceans be like
fzf skim
-
Fixed the meme
Agreed, but use skim instead
What are some alternatives?
linux - Linux kernel source tree
fzf - :cherry_blossom: A command-line fuzzy finder
wayland - Core Wayland protocol and libraries (mirror)
fd - A simple, fast and user-friendly alternative to 'find'
mvb-opencv - Minimum Viable Bindings to OpenCV for Nim
exa - A modern replacement for ‘ls’.
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
ripgrep - ripgrep recursively searches directories for a regex pattern while respecting your gitignore
RFCs - A repository for your Nim proposals.
ion - Mirror of https://gitlab.redox-os.org/redox-os/ion
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
coreutils - Cross-platform Rust rewrite of the GNU coreutils