meson
ZLib
Our great sponsors
meson | ZLib | |
---|---|---|
109 | 49 | |
5,212 | 5,219 | |
2.1% | - | |
9.8 | 8.9 | |
about 8 hours ago | 3 days ago | |
Python | C | |
Apache License 2.0 | 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.
meson
-
Makefile Tutorial
Came here to post the same. The answer for How to build software? is Meson[1] for C and C++ and also other languages. Works well on Windows and Mac, too.
I’ve written a small Makefile to learn the basic and backgrounds. Make is fine. But the next high-level would have been Autotools, which is an intimidating and weird set of tools. Most new stuff written in C/C++ use now Meson and it feels sane.
-
CMake x make?
If you are very fortunate, you'll be able to choose something else. I like meson myself: it looks a bit like python, it's popular, small, simple, well-documented, easy to install and update, and it works well everywhere.
-
C++ Papercuts
I suggest changing the build tool. Meson improved C and C++ a lot:
The dependency declaration and auto-detection is nice. But the hidden extra is WrapDB, built-in package management (if wanted):
https://mesonbuild.com/Wrap-dependency-system-manual.html
-
A Modern C Development Environment
> C's only REAL problem (in my opinion) which is the lack of dependency management. Most everything else can be done with a makefile and a half decent editor.
Care to hear about our lord and saviour Meson?
Both of your quoted problems are mutually incompatible: dependency management isn't the job of the compiler, it's a job for the build or host system. If you want to keep writing makefiles, be prepared to write your own `wget` and `git` invocations to download subprojects.
Meanwhile, Meson solves the dependency management problem in a way that makes both developers and system integrators/distributions happy. It forces you to make a project that doesn't have broken inter-file or header dependency chains and cleans up all the clutter and cruft of a makefile written for any non-trivial project, while making it trivial to integrate other meson projects into your build, let other people integrate your project into theirs, and provides all of the toggles and environment variables distribution developers need to package your library properly. You can really have your cake and eat it too.
-
cgen: another declarative CMake configuration generator
Other people going down this route seem to end up writing cmake replacements instead. I'm thinking of something like meson here except that meson never intended to transpile to cmake.
- Makefile vs Cmake - Objective comparison ?
-
Installer script for CMake, Ninja, and Meson
I thought I would share my custom installer script for the latest GitHub versions of CMake, Ninja, and Meson.
-
I was wrong about rust
Meson is probably the closest we'll ever get to such a thing, it's kinda declarative and has WrapDB as a dependency repository.
-
Building and Running Pidgin and Finch 3
Historically when you're building software you need to install it before you can run it. A while back Meson added support for development environments (aka devenv's). These allow us to run pidgin3 and finch3 from the build directory without installing, which saves a TON of development time!
-
Rendering UTF8 in the bare terminal?
We'll go to meson's github page and download the latest release (opting for the meson-1.1.0.tar.gz file), and extract it somewhere
ZLib
-
ZLib VS jdeflate - a user suggested alternative
2 projects | 25 Nov 2023
-
CVE-2023-4863: Heap buffer overflow in WebP (Chrome)
So the real issue here is that the lack of tree validation before the tree construction, I believe. I'm surprised that this check was not yet implemented (I actually checked libwebp to make sure that I was missing one). Given this blind spot, an automated test based on the domain knowledge is likely useless to catch this bug.
[1] https://github.com/madler/zlib/blob/master/examples/enough.c
-
Notes: Advanced Node.js Concepts by Stephen Grider
In the source code of the Node.js opensource project, lib folder contains JavaScript code, mostly wrappers over C++ and function definitions. On the contrary, src folder contains C++ implementations of the functions, which pulls dependencies from the V8 project, the libuv project, the zlib project, the llhttp project, and many more - which are all placed at the deps folder.
- Exploring the Internals of Linux v0.01
-
Quite OK Image is now my favorite asset format
A minimal viable Deflate decompressor is not exactly complex[1], although slower than mainline zlib.
-
Zlib alternatives?
ZLibrary not zlib for anyone worried about archiving algorithms. https://zlib.net/ and all the Linux repositories are safe (AFAIK).
-
Save File Corruption fix? PLEASE HELP
>The following is my educated guess at what to do next and I am a week-end warrior programmer at best. If someone with more experience comments, I would listen to them over me< If you have no programming experience, this may be a lost cause. It looks like the save file has a header area followed by a list of "zlib" compressed chunks. zlib.net may have a program that can open the save file and let you see the raw information inside it. Something after the header is garbled and it is preventing Save-Editors from decompressing that chunk OR from parsing what is inside of it. If you are lucky, the garbled bit will jump out at you and you can repair it.
-
Zlib Critical Vulnerability
These appears to be the relevant changes:
2022-07-30: https://github.com/madler/zlib/commit/eff308af425b67093bab25...
2022-08-08: https://github.com/madler/zlib/commit/1eb7682f845ac9e9bf9ae3...
The second commit definitely fixed a null pointer dereference, I am not sure if the CVE is referencing something else that was fixed by the first commit.
-
Gzip and Brotli Compression Level Estimator
It is actually possible to estimate the compression level without actually compressing everything again, because different levels use different strategies which can be identified in some cases. zlib in particular has three strategies [1] and preflate [2] leverages this to store the deflate stream reconstruction data without much bits.
[1] https://github.com/madler/zlib/blob/21767c6/deflate.c#L134-L...
[2] https://github.com/deus-libri/preflate/blob/master/preflate_...
-
What does it take to be a good programmer?
It's still a heap of old school C spaghetti https://github.com/madler/zlib/commit/eff308af425b67093bab25...
What are some alternatives?
zstd - Zstandard - Fast real-time compression algorithm
CMake - Mirror of CMake upstream repository
ninja - a small build system with a focus on speed
SCons
LZ4 - Extremely Fast Compression algorithm
LZMA - (Unofficial) Git mirror of LZMA SDK releases
Onion - C library to create simple HTTP servers and Web Applications.
Snappy - A fast compressor/decompressor
Minizip-ng - Fork of the popular zip manipulation library found in the zlib distribution.
Bazel - a fast, scalable, multi-language and extensible build system
brotli - Brotli compression format
cmake-init - The missing CMake project initializer