tigerbeetle
FFmpeg
Our great sponsors
tigerbeetle | FFmpeg | |
---|---|---|
44 | 483 | |
6,534 | 41,738 | |
45.5% | 2.4% | |
9.9 | 10.0 | |
6 days ago | about 9 hours ago | |
Zig | 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.
tigerbeetle
- Factor is faster than Zig
-
The Raft Consensus Algorithm
Maelstrom [1], a workbench for learning distributed systems from the creator of Jepsen, includes a simple (model-checked) implementation of Raft and an excellent tutorial on implementing it.
Raft is a simple algorithm, but as others have noted, the original paper includes many correctness details often brushed over in toy implementations. Furthermore, the fallibility of real-world hardware (handling memory/disk corruption and grey failures), the requirements of real-world systems with tight latency SLAs, and a need for things like flexible quorum/dynamic cluster membership make implementing it for production a long and daunting task. The commit history of etcd and hashicorp/raft, likely the two most battle-tested open source implementations of raft that still surface correctness bugs on the regular tell you all you need to know.
The tigerbeetle team talks in detail about the real-world aspects of distributed systems on imperfect hardware/non-abstracted system models, and why they chose viewstamp replication, which predates Paxos but looks more like Raft.
[1]: https://github.com/jepsen-io/maelstrom/
[2]: https://github.com/tigerbeetle/tigerbeetle/blob/main/docs/DE...
- Fastest Branchless Binary Search
-
CWE Top Most Dangerous Software Weaknesses
> There is no reason to use a memory unsafe language anymore, except legacy codebases, and that is also slowly but surely diminishing. I'm still yet to hear this amazingly compelling reason that you just need memory unsafe languages. In terms of cost/benefits analysis, memory unsafety is literally all costs.
Tell that to the authors of new memory unsafe languages (like Zig) and creators of new project in those languages (like https://tigerbeetle.com) :(
- Problems of C, and how Zig addresses them
- File for Divorce from LLVM
-
Zap – fast back ends in Zig
Seeing this, and the use of zig for https://github.com/tigerbeetledb/tigerbeetle I wonder if zig might become a good tradeoff vs rust for servers if in long term it's more readable and maintainable and with a different approach to quality.
I would also be interested to hear the compile time, binary size and memory usage of those example apps.
Looks like the underlying facil.io library hasn't seen any commits since 2021, so that's a bit of a red flag. https://github.com/boazsegev/facil.io
-
Significant examples of Zig software (June 2023)?
About three years ago, we had a thread called "Significant examples of Zig software?". Some time has passed, and there have been fairly large Zig code bases that have surfaced since, such as TigerBeetle (cc /u/eatonphil), or adoption at places like Uber.
-
I think Zig is hard but worth it
This is basically what I've come to do in the Zig scripts I write at work.
It took a bit of getting used to when I joined but we agreed as a team to have all meaningful scripts written in Zig not bash (for one, bash doesn't work on Windows without WSL and we need to support Windows builds/testing/etc.).
It makes about as much sense as any other cross-platform scripting option once I got used to it!
Some examples:
Docs generation: https://github.com/tigerbeetledb/tigerbeetle/blob/main/src/c...
Integration testing sample code: https://github.com/tigerbeetledb/tigerbeetle/blob/main/src/c...
Running a command wrapped in a TigerBeetle server run: https://github.com/tigerbeetledb/tigerbeetle/blob/main/src/c...
FFmpeg
-
Writing x86 SIMD using x86inc.asm (2017)
This turns out to be a lot of assembly macros to help write one x86 assembly. https://github.com/FFmpeg/FFmpeg/blob/master/libavutil/x86/x...
The sibling comment recommending compiler intrinsics is probably the best way to go for writing SIMD code. A mixture of `` style types and intrinsics to specify instructions is a solid 90% solution compared to assembly.
If you want that last 10%, I think macros are putting the emphasis in the wrong place. They're a somewhat easy way to build up a language abstraction which will work if held carefully, but I'm confident the dev experience using this abstraction when you write invalid code will be deeply confusing.
I would suggest to write a parser instead of the macros. That'll tell you clearly when the syntax is invalid (though possibly not with much precision) and it'll give you a place to put semantic analysis for where valid syntax encodes nonsense. Do the equivalent of the macro expansions on the parsed tree instead of on the text. Emit asm as the "back end".
-
Video Generation with Python
You might have heard of FFMPEG or ImageMagick for image and video edition in a programmatic way. MoviePy is a Python module for video editing (Python wrapper for FFMPEG and ImageMagick). It provides functions for cutting, concatenations, title insertions, video compositing, video processing, and the creation of custom effects. It can read and write common video and audio formats and be run on any platform with Python 2.7 or 3+.
- I want some logically difficult c programs
-
11 Ways to Optimize Your Website
There are many cloud-based tools and websites that can convert your images, but the problem with these tools is that you usually have to upload the files for them to be processed, and some of their services are not free. In this article, I'd like to introduce a piece of software called FFmpeg, which allows you convert the images locally with one simple command.
-
AI-assisted removal of filler words from video recordings
To run the demo locally, be sure to have Python 3.11 and FFmpeg installed.
-
OpenAI Whisper: Transcribe in the Terminal for free
To get started, we’ll need to install FFmpeg, the all-in-one tool for working with audio and video. We’ll use it to record audio and Whisper AI will use it to create a transcription.
-
AI Coding Companions: My Experiences in 2023
Recently I needed to build something with Python and FFmpeg. And while FFmpeg is amazingly powerful, it can also be incredibly complicated.
-
New AnimateDiff on ComfyUI supports Unlimited Context Length - Vid2Vid will never be the same!!! [Full Guide/Workflow in Comments]
8/Once done it will have frames and a gif (if you are getting a ffmpeg error it will just not make the GIF - you will need to install https://ffmpeg.org/ and look on youtube for how to add it to PATH). Please note the GIF is signficantly worse quality than the original frames so have a look at them.
-
software to convert files like mkv to mp4 and others
https://ffmpeg.org/ - FOSS, Command line. Will convert anything you have to anything you want.
-
The 10 tools I install on every new Mac I get
FFMPEG - converts anything to anything on the command line (free)
What are some alternatives?
mpv - 🎥 Command line video player
ffmpeg-python - Python bindings for FFmpeg - with complex filtering support
OpenH264 - Open Source H.264 Codec
Exoplayer - An extensible media player for Android
hlsdl - C program to download VoD HLS (.m3u8) files
GStreamer - GStreamer open-source multimedia framework
jcodec - JCodec main repo
libde265 - Open h.265 video codec implementation.
obs-ndi - NewTek NDI integration for OBS Studio
Bento4 - Full-featured MP4 format, MPEG DASH, HLS, CMAF SDK and tools
HandBrake - HandBrake's main development repository
mp4parser - A Java API to read, write and create MP4 files