png-decoder
ableC
png-decoder | ableC | |
---|---|---|
4 | 1 | |
40 | 35 | |
- | - | |
0.0 | 6.3 | |
over 1 year ago | 4 days ago | |
Rust | C | |
GNU General Public License v3.0 or later | GNU Lesser General Public License v3.0 only |
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.
png-decoder
-
Anyone want to speed up a PNG decoder?
Just sent a pull request to fix that issue (https://github.com/bschwind/png-decoder/pull/11)
- The Fastest, Safest PNG Decoder in the World
ableC
-
The Fastest, Safest PNG Decoder in the World
I work on (well, mostly near) an extensible C compiler, designed so extension authors can independently create extensions, and users can import them as easily as libraries: https://github.com/melt-umn/ableC/
IMO this approach hasn't taken off because maintaining compatibility with C while adding safety (or really just about any property) means implementing your own sublanguage that can't arbitrarily call C functions while maintaining your safety properties. On the other hand, C being able to call into your sublanguage easier is a benefit versus jury-rigging Cargo into your build system (in the case of Rust).
On the other hand, this approach works great for adding extensions that increase the expressive power of C with new abstractions, for example algebraic data types, C++-like templating, etc.
What are some alternatives?
wuffs - Wrangling Untrusted File Formats Safely
smhasher - Hash function quality and speed tests
image-png - PNG decoding and encoding library in pure Rust
simd-adler32 - A SIMD-accelerated Adler-32 hash algorithm implementation.
ivory - The Ivory EDSL
Halide - a language for fast, portable data-parallel computation
Compiler
tiny-skia - A tiny Skia subset ported to Rust
stb - stb single-file public domain libraries for C/C++