sokol-zig VS FrameworkBenchmarks

Compare sokol-zig vs FrameworkBenchmarks and see what are their differences.

sokol-zig

Zig bindings for the sokol headers (https://github.com/floooh/sokol) (by floooh)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
sokol-zig FrameworkBenchmarks
9 369
291 7,404
- 0.6%
9.0 9.8
7 days ago 6 days ago
C Java
- GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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-zig

Posts with mentions or reviews of sokol-zig. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-01.
  • Zig cookbook: collection of simple Zig programs that demonstrate good practices
    6 projects | news.ycombinator.com | 1 Jan 2024
    Zig currently doesn't allow chained designators and also doesn't allow to partially initialize arrays and fill up the rest of the array with default values.

    E.g. the closest Zig equivalent to this C99 code:

    https://github.com/floooh/sokol-samples/blob/b3bc55c4411fa03...

    ...is this:

    https://github.com/floooh/sokol-zig/blob/a4b3c287fadd153a504...

    ...note how part of the initialization had to be moved out into "code".

    There's a ticket about this here, but it's currently not high-priority:

    https://github.com/ziglang/zig/issues/6068

  • Nim v2.0 Released
    49 projects | news.ycombinator.com | 1 Aug 2023
    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

  • Zig Build System
    8 projects | news.ycombinator.com | 14 Apr 2023
    IMHO you really need a programming language to describe a build, even when the result looks very declarative.

    E.g. not sure how Meson handles this, but when I have a project with dozens of similar build targets and platform specific compile options, I really want to do the build description in a loop instead of a data tree.

    (for example: https://github.com/floooh/sokol-zig/blob/3f978e58712f9eb029b...)

  • Zig and WASM
    11 projects | news.ycombinator.com | 13 Jul 2022
  • Mach v0.1 - cross-platform Zig graphics in ~60 seconds
    1 project | /r/Zig | 4 Apr 2022
    Is this project comparable to the zig sokol project?https://github.com/floooh/sokol-zig
  • How does zig magically cross compile without target shared libraries
    1 project | /r/Zig | 31 Mar 2022
    I was rather amazed that I could cross-compile the zig-sokol examples https://github.com/floooh/sokol-zig for a Windows target on a Linux host (WSL Ubuntu). I simply set -target x86_64-windows and copied the executable into Windows and got a nice spinning cube displayed.
  • Mach Engine: The Future of Graphics (With Zig)
    3 projects | news.ycombinator.com | 18 Oct 2021
    (disclaimer: shameless plug) Here's another cross-platform alternative, auto-generated Zig bindings to the Sokol headers:

    https://github.com/floooh/sokol-zig

    This is quite a bit slimmer than using one of the WebGPU libraries like wgpu-rs or Dawn, because sokol-gfx doesn't need an integrated shader cross-compiler (instead translation from a common shader source to the backend-specific shader formats happens offline).

    Eventually I'd also like to support the Android, iOS and WASM backends from Zig (currently this only works from C/C++, for instance here are the WASM demos: https://floooh.github.io/sokol-html5/)

  • Making Win32 APIs More Accessible to More Languages
    6 projects | news.ycombinator.com | 23 Jan 2021
    I'm tackling this issue from two sides:

    (1) Change the C-API to make it more "binding-generator-friendly", for instance by adding a range/slice-struct to th C-API which bundles a pointer and associated size, or specially named typedefs that only exist to give the binding generator hints for special case handling.

    (2) Make the bindings-generator configurable on a per-language and per-API basis, this can be as simple as a map which overrides type- and function-names, or injects manually written code into the generated bindings.

    The goal is to make the generated bindings more idiomatic to the target language.

    This mostly works if you have control over the underlying C-API of course, e.g. the language bindings are created by the original C-library project, not as an external project to convert a fixed C-API.

    I wrote a blog post about this whole topic:

    https://floooh.github.io/2020/08/23/sokol-bindgen.html

    ...and here's an example of one such semi-auto-generated Zig bindings, note the two "injected" helper functions at the top:

    https://github.com/floooh/sokol-zig/tree/master/src/sokol

    ...for instance note the "injected" helper functions here:

    https://github.com/floooh/sokol-zig/blob/1c93f60ad178869b84d...

  • Game Development
    4 projects | /r/Zig | 5 Jan 2021
    As you can see from the comments there are lots of options. Sokol is another one https://github.com/floooh/sokol-zig

FrameworkBenchmarks

Posts with mentions or reviews of FrameworkBenchmarks. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-25.
  • Why choose async/await over threads?
    11 projects | news.ycombinator.com | 25 Mar 2024
    Neat. Thanks for sharing!

    Interestingly, may-minihttp is faring very well in the TechEmpower benchmark [1], for whatever those benchmarks are worth. The code is also surprisingly straightforward [2].

    [1] https://www.techempower.com/benchmarks/

    [2] https://github.com/TechEmpower/FrameworkBenchmarks/blob/mast...

  • Ntex: Powerful, pragmatic, fast framework for composable networking services
    2 projects | news.ycombinator.com | 23 Mar 2024
    ntex was formed after a schism in actix-web and Rust safety/unsafety, with ntex allowing more unsafe code for better performance.

    ntex is at the top of the TechEmpower benchmarks, although those benchmarks are not apples-to-apples since each uses its own tricks: https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s...

  • A decent VS Code and Ruby on Rails setup
    8 projects | news.ycombinator.com | 21 Feb 2024
    Ruby is slow. Very slow. How much you may ask? https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s... fastest Ruby entry is at 272th place. Sure, top entries tend to have questionable benchmark-golfing implementations, but it gives you a good primer on the overhead imposed by Ruby.

    It is also not early 00s anymore, when you pick an interpreted language, you are not getting "better productivity and tooling". In fact, most interpreted languages lag behind other major languages significantly in the form of JS/TS, Python and Ruby suffering from different woes when it comes to package management and publishing. I would say only TS/JS manages to stand apart with being tolerable, and Python sometimes too by a virtue of its popularity and the amount of information out there whenever you need to troubleshoot.

    If you liked Go but felt it being a too verbose to your liking, give .NET a try. I am advocating for it here on HN mostly for fun but it is, in fact, highly underappreciated, considered unsexy and boring while it's anything but after a complete change of trajectory in the last 3-5 years. It is actually the* stack people secretly want but simply don't know about because it is bundled together with Java in the public perception.

    *productive CLI tooling, high performance, works well in a really wide range of workloads from low to high level, by far the best ORM across all languages and back-end framework that is easier to work with than Node.JS while consuming 0.1x resources

  • The Erlang Ecosystem [video]
    1 project | news.ycombinator.com | 8 Jan 2024
    Although that seems to have improved in recent years.

    https://www.techempower.com/benchmarks/#hw=ph&test=json§...

  • Ruby 3.3
    11 projects | news.ycombinator.com | 24 Dec 2023
    RoR and whatever C++ based web backend there is count as a valid comparison in my book. But comparing the languages itself is maybe a bit off.

    On a side note, you can actually compare their performance here if you’re really curious. But take it with a grain of salt since these are synthetic benchmarks.

    https://www.techempower.com/benchmarks

  • API: Go, .NET, Rust
    3 projects | /r/dotnet | 9 Dec 2023
    Most benchmarks you'll find essentially have someone's thumb on the scale (intentionally or unintentionally). Most people won't know the different languages well enough to create comparable implementations and if you let different people create the implementations, cheating happens. The TechEmpower benchmarks aren't bad, but many implementations put their thumb on the scale (https://www.techempower.com/benchmarks). For example, a lot of the Go implementations avoid the GC by pre-allocating/reusing structs or allocate arrays knowing how big they need to be in advance (despite that being against the rules). At some point, it becomes "how many features have you turned off." Some Go http routers (like fasthttp and those built off it like Atreugo and Fiber) aren't actually correct and a lot of people in the Go community discourage their use, but they certainly top the benchmarks. Gin and Echo are usually the ones that are well-respected in the Go community.
  • Rage: Fast web framework compatible with Rails
    12 projects | news.ycombinator.com | 4 Dec 2023
    There is certainly a lot of speculation in Techempower benchmarks and top entries can utilize questionable techniques like simply writing a byte array literal to output stream instead of constructing a response, or (in the past) DB query coalescing to work around inherent limitations of the DB in case of Fortunes or DB quries.

    And yet, the fastest Ruby entry is at 274th place while Rails is at 427th.

    https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s...

  • Node.js – v20.8.1
    2 projects | news.ycombinator.com | 15 Oct 2023
    oh what machine? with how many workers? doing what?

    search for "node" on this page: https://www.techempower.com/benchmarks/#section=data-r21

  • Strong typing, a hill I'm willing to die on
    9 projects | news.ycombinator.com | 4 Oct 2023
    JustJS would like a word https://www.techempower.com/benchmarks/#section=data-r20&tes...
  • Rust vs Go: A Hands-On Comparison
    6 projects | news.ycombinator.com | 27 Sep 2023
    In terms of RPS, this web service is more-or-less the fortunes benchmark in the techempower benchmarks, once the data hits the cache: https://www.techempower.com/benchmarks/#section=data-r21

    Or, at least, they would be after applying optimizations to them.

    In short, both of these would serve more rps than you will likely ever need on even the lowest end virtual machines. The underlying API provider will probably cut you off from querying them before you run out of RPS.

What are some alternatives?

When comparing sokol-zig and FrameworkBenchmarks you can also consider the following projects:

zig-bgfx-sdl2 - Minimal zig project to get bgfx running with sdl2

zio-http - A next-generation Scala framework for building scalable, correct, and efficient HTTP clients and servers

bigger - bigg (bgfx + imgui + glfw + glm) + utils

drogon - Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows [Moved to: https://github.com/drogonframework/drogon]

sokol-samples - Sample code for https://github.com/floooh/sokol

django-ninja - 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs

go - The Go programming language

LiteNetLib - Lite reliable UDP library for Mono and .NET

JNA - Java Native Access

C++ REST SDK - The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

ffmpeg - FFmpeg Zig package

SQLBoiler - Generate a Go ORM tailored to your database schema.