• Stars
    star
    10
  • Rank 1,751,408 (Top 36 %)
  • Language
    Zig
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[wip] Matroska/webm (mkv) parser in Zig

zigmkv

A work in progress Matroska/webm (mkv) parser in Zig.
For now it contains elements database, can decode mkv files to element tree, but it does not yet handle parse frame content and calculate proper timecodes.
Main idea was to evaluate Zig as a general purpose programming language.
Tested with zig version 0.8.0.

$ zig build
$ zig-out/bin/zigmkv l2dump < some_file.mkv
open 0x1a45dfa3 (EBML) type=Type.master size=35
  open 0x4286 (EBMLVersion) type=Type.uinteger size=1
    number 1
    close 0x4286 (EBMLVersion) type=Type.uinteger
  open 0x42f7 (EBMLReadVersion) type=Type.uinteger size=1
    number 1
    close 0x42f7 (EBMLReadVersion) type=Type.uinteger
  open 0x42f2 (EBMLMaxIDLength) type=Type.uinteger size=1
    number 4
    close 0x42f2 (EBMLMaxIDLength) type=Type.uinteger
...

More Repositories

1

websocat

Command-line client for WebSockets, like netcat (or curl) for ws:// with advanced socat-like functions
Rust
6,121
star
2

tcpsocks

Redirect traffic to SOCKS5 server with iptables, epoll based, single threaded.
C
112
star
3

virtual_touchscreen

Simple evdev linux device driver and GUI program to simulate multitouch touchscreen
C
81
star
4

timeago

In Rust, format Duration into a string like "1 hour ago" or "01hou".
Rust
64
star
5

mkvparse

Simple Python matroska (mkv) reading library, also mkv2xml and xml2mkv
Python
57
star
6

dive

Start programs inside unshare/lxc namespaces easily using UNIX sockets + easy access to capabilities, namespaces, chroot and others.
C
54
star
7

fdlinecombine

Read multiple fds and print data to stdout linewise.
C
44
star
8

timeskew

Override time reporting in Linux processes (accelerate/slowdown games, test code involving timers/delays)
C
37
star
9

sledtool

CLI tool to work with Sled key-value databases.
Rust
35
star
10

udptap_tunnel

Simple UDP tun/tap-based tunnel with mcrypt encryption. Also some more AF_PACKET and tun/tap related tools.
C
34
star
11

wsbroad

Simple websocket broadcaster implemented in Rust
Rust
34
star
12

execfuse

Turn a bunch of scripts into a FUSE filesystem
C
28
star
13

json2

xml2 for JSON; like gron
Python
27
star
14

rust-nbd

Rust library for NBD (network block device) protocol.
Rust
26
star
15

tcplim

User-space TCP bandwidth limiter (based on tcprelay)
C
23
star
16

imlib2-heic

HEIC/HEIF decoder for imlib2 (feh)
C
23
star
17

syscall_limiter

Start Linux programs with only selected syscalls enabled (libseccomp-based)
C
23
star
18

tokio-stdin-stdout

AsyncRead/AsyncWrite stdin/stdout for legacy pre-0.1 Tokio
Rust
18
star
19

trait-enumizer

Derive macro for Rust that turns traits into enums, providing tools for calling funtions over channels
Rust
17
star
20

dnscache

Simple DNS proxy with forced caching
Rust
16
star
21

rust-stunclient

Simple Rust STUN client library for resolving external IP address and port of a UDP socket
Rust
16
star
22

readwriteseekfs

In Rust, Expose Read+Write+Seek (or just Read+Seek) as a FUSE-backed regular file
Rust
12
star
23

syn-file-expand

Rust library to scan files and expand (make modules inline) multi-file crates source code as a single tree.
Rust
12
star
24

turnhammer

Stress-testing tool for TURN (RFC 5766) servers.
Rust
11
star
25

macro_robinhood_hash

Simple Robin Hood hash table implemented using C macros
C
11
star
26

fusecow

Simple single-file FUSE implementation of copy-on-write
C
10
star
27

wgslirpy

User-space Wireguard gateway allowing sharing network connection from environment where usual routing rules are inaccessible.
Rust
10
star
28

nbdserve

A simple NBD (network block device) server in Rust
Rust
10
star
29

float-pretty-print

Format f64 in Rust with minimum and maximum width, auto switching between scientific and normal representation
Rust
10
star
30

rust-turnclient

Simple TURN client library for Rust, also a general-purpose TURN proxy.
Rust
9
star
31

fopen_override

LD_PRELOAD-based fopen/open filename overrider
C
9
star
32

udpnat

P2P-friendly UDPv4-only user-space NAT for Linux. [beta]
C
9
star
33

android-udp-bus

Android tool to exchange UDP packets
Rust
9
star
34

mal-rust-vi

My attempt to solve https://github.com/kanaka/mal using Rust and Pest
Rust
8
star
35

moshudp

Simple alternative session establisher for mosh
Rust
8
star
36

postsse

HTTP POST and Server-sent events interconnector
Rust
7
star
37

fusenbd

Mount network block device export as a single-file FUSE filesystem.
Rust
7
star
38

libmlockall

Lock all pages in memory for a process tree
C
7
star
39

wsmirror

WebSocket mirror (echo server) implementation, for running services like echo.websocket.org
Rust
7
star
40

DisplayAndPickPixel

Display picture and print coordinates on clicks
C++
7
star
41

ts2xml

Dump mpegts files as XML, decoding various headers
Python
7
star
42

vi_tools

Various command-line tools, mostly for Linux
C
7
star
43

csvcatrow

A CLI tool to concatenate rows from many csv files by matching columns of each
Rust
6
star
44

http-bytes

Bridge Rust's `http` crate world and bytes world without a real web framework
Rust
5
star
45

slab_typesafe

A type-safe wrapper for Rust's "slab" data structure
Rust
5
star
46

fusefile

Mount one file to another (with offset and append_only support)
C
5
star
47

netns_tcp_bridge

Linux CLI tool to forward TCP connections from one network namespace to another network namespace
Rust
5
star
48

udpenc

UDP relay with blowfish encryption
C
5
star
49

natram

UDP hole puncher for restrictive-ish NAT
Rust
5
star
50

AnkiImporter

Import cards into AnkiDroid from text files using API
Java
5
star
51

compactmap

CompactMap data structure for Rust
Rust
5
star
52

stunserv

Simple STUN server for testing purposes
Rust
5
star
53

outoforderfs

FUSE single-file filesystem simulating dirty block device shutdown (each write is delayed randomly)
Rust
5
star
54

pcap2udp

Simple tool to send frames from pcap dump as udp packets
Rust
5
star
55

mkv.rs

[incomplete] Library to work with Matroska (mkv) files in Rust
Rust
4
star
56

tcprelay

Simple Linux epoll-based single thread TCP relay.
C
4
star
57

zboxmount

FUSE application for mounting ZboxFS
Rust
4
star
58

curve25519tool

Command-line tool to perform curve25519 and ed25519 operations
Rust
4
star
59

imlib2-avif

AVIF loader for Imlib2/feh
C
4
star
60

readwrite

Rust mini-library to combine a reader and a writer into a Read+Write psedo-socket.
Rust
4
star
61

tcptunnelchecker

[WiP] Checks TCP tunnel/forwarder for correctness
Rust
4
star
62

imlib2-bpg

imlib2 plugin for loading BPG images
C
4
star
63

HsMkv

Simple matroska (mkv) demuxer and muxer written in Haskell
Haskell
4
star
64

ipv6proxy

IPv6 router advertisment and neighbour discovery proxy for simple bridge-like extensions of /64 networks.
C
4
star
65

simple_cbor_stream_parse

Simple low-level streamed callback-based CBOR push parser in C and C++
C
4
star
66

tokio-listener

Unified way to specify AF_INET or AF_UNIX address for listening sockets in Tokio projects (or inetd mode)
Rust
3
star
67

tcpprepend

Simple TCP forwarder that prepends some fixed bytes to responses and ignores some fixed header on requests
Rust
3
star
68

forsnapshotfs

Storage for incremental backup/snapshots (as single big files)
C
3
star
69

resolvconffs

Special FUSE filesystem to map /etc/resolv.conf to different files depending on Linux network namespace
Rust
3
star
70

tarpipefs

Virtual write-only FUSE filesystem to create tar archives [early and hacky]
C
3
star
71

pktslow

Virtual network for slowing down or dropping packets selectively
Rust
3
star
72

videomedian

Temporal-median noise reduction video filter
C
3
star
73

line2httppost

Command-line HTTP client for sending a POST request to specified URI on each stdin line.
Rust
3
star
74

chaoticfs

Encrypting FUSE filesystem with "false bottom" allowing exposing the data only partially
C
3
star
75

rechat2srt

Command-line tool to convert Twitch's *.rechat.json files to srt subtitles.
Rust
2
star
76

http_file_uploader

Simple low-level web server to serve file uploads with some shell scripting-friendly features
Rust
2
star
77

torchctl

LED controller for Google Pixel 3 XL smartphone (requires root access)
Rust
2
star
78

tcplinecombine

Accept TCP connections, read lines from them and write them to one zstd-compressed file
Rust
2
star
79

duplo

Web application for anonymous file sharing in intranet environments.
JavaScript
2
star
80

redscreen.apk

Trivial Android application that just shows bright red screen
Java
2
star
81

audiorepeat

ALSA-based program to record from mic and immediately play it back
Rust
2
star
82

fusecloop

Mount cloop images (like in Knoppix) using FUSE
HTML
2
star
83

random-distributions-cli

Command-line tool to generate samples of various random distributions
Rust
2
star
84

netmeasure2

[work in progress] Network quality measurement tool (packet loss and delay statistics).
Rust
2
star
85

socksredirect

"iptables ... -p tcp -j REDIRECT" to this program and it will connect to SOCKS5 server
C
2
star
86

libshortrecv

LD_PRELOAD library to make read/write/send/recv/etc. simulate short reads/writes
C
1
star
87

tokio-copy-with-buffer

A fork of tokio_io::io::copy function that is more flexible.
Rust
1
star
88

for_merge

A test repository to demonstrate git merging and rebasing
1
star
89

simplecowfs

Mount filesystems with unreplayed journal from read-only media easily
C
1
star
90

andrgesture

Program to interpret circual gestures on a touchscreen and run program when enough winds are performed by user.
Rust
1
star
91

websocket-sans-io

Low-level WebSocket frame encoding and decoding library for Rust
Rust
1
star
92

wg2gue

Wireguard to GUE/FOU bridge: exchange IPv4 or IPV6 packets between a Wireguard peer and a plain UDP socket.
Rust
1
star
93

wgserve

Android application to route incoming connections from Wireguard tunnels to device's network
Rust
1
star
94

println_logger

Trivial Rust loger that just does println!, like the sample logger in documentation
Rust
1
star
95

lsstack

Enhanced lsstack with periodic probing and output to file
C
1
star
96

jscfi

BSU Super Computer Phoenix Initiative cluster graphical task manager
Clojure
1
star
97

codegolf-jein

Toolset and example solution of "Yes or no" codegolf
C
1
star
98

tokio-watchdog

A simple watchdog timer for Rust's Tokio async world
Rust
1
star
99

snp

Command-line Snappy (compression algorithm, not a package) encode/decode tool
C++
1
star
100

persyfs

FUSE filesystem based on Persy storage
Rust
1
star