Skip to content
hsdfatPublic

About

Profile README; upstream contribution stats regenerated nightly

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

92 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Phat Le (hsdfat)

Go and Rust engineer working on real-time media: WebRTC, RTSP, HLS and the RTP plumbing underneath, after several years building 5G core network functions. I send the production bugs I hit upstream.

Upstream contributions

79 merged pull requests (1 later reverted) across 34 upstream projects totalling 453.3k stars · 48 in review

Browse every merged and open upstream pull request

Merged

Project ★ PR Contribution
caddyserver/caddy 78.9k #8063 caddyauth: support third-party hash modules
rclone/rclone 60.9k #9693 fserrors: make http2 "server sent GOAWAY" a retriable error - fixes #96…
rclone/rclone 60.9k #9751 operations: check checksums in rcat with known size - fixes #6305
rclone/rclone 60.9k #9868 dropbox: fix shared folder mount for roots nested more than one level d…
rclone/rclone 60.9k #9869 dropbox: match shared-folder and received-file names case-insensitively
rclone/rclone 60.9k #9870 serve docker: fix volume path being lost when the plugin restarts
rclone/rclone 60.9k #9872 fs/config: only run --password-command once when using --daemon
rclone/rclone 60.9k #9944 operations: make --immutable work with copyto, moveto and single file c…
rclone/rclone 60.9k #9945 smb: save the user name in the config even if it matches the current us…
rclone/rclone 60.9k #9947 local: stop --copy-links following symlink loops - fixes #4402
rclone/rclone 60.9k #9949 vfs: fix AddVirtual ignoring isDir
rclone/rclone 60.9k #9950 serve dlna: log unescaped paths - fixes #7370
rclone/rclone 60.9k #9977 docker: add mailcap for /etc/mime.types - fixes #6384
rclone/rclone 60.9k #10057 lib/batcher: log when committing uploads has finished - fixes #5564
rclone/rclone 60.9k #10220 serve sftp: fix rmdir deleting a file instead of returning an error
rclone/rclone 60.9k #10221 serve dlna: fix crash on Browse with a negative StartingIndex or Reques…
go-gitea/gitea 59k #38693 fix(lfs): failed upload deletes a concurrent upload's meta object
alibaba/open-code-review 49.8k #501 feat(allowlist): add Julia (.jl) support
nushell/nushell 41.1k #19092 Clear sqlite history with SQL instead of deleting the file
seaweedfs/seaweedfs 36k #10656 s3api: fix ListObjectsV2 dropping objects under a partial prefix
seaweedfs/seaweedfs 36k #11393 fix(volume): return an error instead of panicking on a corrupt needle s…
seaweedfs/seaweedfs 36k #11397 fix(volume): return an error instead of 201 when a write lands on no vo…
seaweedfs/seaweedfs 36k #11398 fix(volume): stop ScanVolumeFileFrom at a header it cannot advance past
seaweedfs/seaweedfs 36k #11399 fix(volume): validate sizes in ReadNeedleBlob and WriteNeedleBlob
seaweedfs/seaweedfs 36k #11483 fix(volume-rust): reserve a disk before replacing a replica in VolumeCo…
seaweedfs/seaweedfs 36k #12269 fix(volume): reject a negative suffix length in Range headers
seaweedfs/seaweedfs 36k #12270 fix(s3): reject non-integer max-parts, part-number-marker and max-uploa…
grpc-ecosystem/grpc-gateway 20k #7110 docs: add runnable OpenTelemetry tracing example
grpc-ecosystem/grpc-gateway 20k #7207 fix(openapiv2): omit oneof siblings of path parameters from query param…
argoproj/argo-workflows 17.1k #16602 perf(executor): read resource once for outputs (fixes #5658)
IBM/sarama 12.5k #3752 fix(client): only deregister the broker registered under that ID
IBM/sarama 12.5k #3852 fix(protocol): don't send an unclean election as ElectLeaders v0
kubeshark/kubeshark 12.1k #1956 helm: use Recreate strategy for hub Deployment when local snapshots PVC…
shirou/gopsutil 11.9k #2143 [docker][linux]: support cgroup v2 in Cgroup* functions
shirou/gopsutil 11.9k #2163 [cpu][darwin]: don't crash in getFrequency when pmgr lacks voltage-stat…
shirou/gopsutil 11.9k #2190 [disk][linux]: decode only \ooo escapes in mount points
shirou/gopsutil 11.9k #2191 [net][linux]: fix IPv6 address decoding on big-endian hosts
velero-io/velero 10.4k #10212 Fix Zip Slip path check accepting a sibling directory in archive extrac…
anchore/syft 9.9k #5121 fix(binary): match istio snapshot and older pre-release versions
woodpecker-ci/woodpecker 8.2k #7189 Release agents waiting on long polls during server shutdown
woodpecker-ci/woodpecker 8.2k #7192 Fix race condition on concurrent pipeline config persist
woodpecker-ci/woodpecker 8.2k #7454 Fix image tag detection for registries with a port
woodpecker-ci/woodpecker 8.2k #7501 Return log store errors to the agent, except for duplicate entries
webrtc-rs/webrtc 5.2k #954 fix(ice): use a random transaction ID for STUN Binding requests
uptrace/bun 5k #1414 fix(bunotel): honor WithMeterProvider when reporting DB stats metrics
uptrace/bun 5k #1415 fix(relation): do not duplicate joined models on a shared base model
uptrace/bun 5k #1435 fix: resolve map column types before scanning rows
apache/arrow-rs 3.7k #11229 fix(parquet): support non-primitive map keys in record reader
apache/arrow-rs 3.7k #12006 fix(arrow-string): saturate the length in Utf8View/BinaryView substring
apache/arrow-rs 3.7k #12007 fix(arrow-json): reject out-of-range float timestamps instead of satura…
apache/arrow-rs 3.7k #12102 fix(arrow-cast): write timestamps whose zone offset has seconds in UTC
apache/arrow-rs 3.7k #12108 fix(parquet): return error on negative DELTA_BYTE_ARRAY lengths in arro…
vishvananda/netlink 3.3k #1225 filter: use EncDestIPMask when encoding Flower EncDestIP
xerial/sqlite-jdbc 3.3k #1501 feat: redact encryption key pragmas in trace logs
nginx/nginx-gateway-fabric 1.2k #5639 fix: correct validation error diagnostics and add missing CRD schema co…
bluenviron/gortsplib 944 #1171 sdp: support oversized numbers in origin (bluenviron/mediamtx#5949)
algesten/str0m 652 #1058 Limit pacer burst size at high bitrates
ClickHouse/clickhouse-rs 569 #478 fix(types): parse JSON type hints with parenthesized types
ClickHouse/clickhouse-rs 569 #481 fix: use a derived query ID for insert schema lookups
jonas-grgt/ktea 445 #179 feat: allow configuring the debug log location with --debug=PATH
kerlenton/mcpsnoop 368 #212 feat(check): emit SARIF 2.1.0 so findings land in the Security tab
kerlenton/mcpsnoop 368 #213 feat(cli): wrap and unwrap the Claude Desktop config for one server
gopacket/gopacket 320 #172 Reverted after merge. packet: set zeroCopy in NewZeroCopyPacketSource
fiorix/go-diameter 298 #262 diam: key the Unmarshal AVP index by {Code, VendorID}
fiorix/go-diameter 298 #275 diam: match the Vendor-Id in FindAVP, FindAVPs and FindAVPsWithPath
fiorix/go-diameter 298 #276 diam: keep only the P flag of the request in Answer
pyhss/pyhss 115 #337 diameterService: iterate over a snapshot of activePeers
bluenviron/mediacommon 105 #368 h265: fix DTS extraction of streams with temporal sub-layers
bluenviron/mediacommon 105 #373 pmp4: support stsz with a constant sample size (bluenviron/mediamtx#580…
bluenviron/mediacommon 105 #375 pmp4: support tracks without edts
bluenviron/mediacommon 105 #376 pmp4: return seek errors from GetPayload
bluenviron/mediacommon 105 #377 pmp4: support tracks longer than 2^32 ticks
bluenviron/mediacommon 105 #398 h264: fix SPS width when ChromaArrayType is 0
bluenviron/mediacommon 105 #399 av1: support sequence headers with initial display delay
free5gc/amf 23 #232 fix: guard non-string DNN type assertions in GMM handler
free5gc/udm 9 #96 fix(udm): return ProblemDetails for unmatched resource URIs
free5gc/tngf 5 #47 fix: prevent slice-bounds panic on malformed IKE SA proposal
free5gc/udr 4 #70 fix: return ProblemDetails for unmatched resource URIs
free5gc/ike 3 #24 fix: prevent slice-bounds panics from uint8 SPI offset overflow

In review

Project ★ PR Contribution
caddyserver/caddy 78.9k #8062 caddyhttp: Add status_code option to http_redirect listener wrapper
rclone/rclone 60.9k #9946 serve sftp, serve webdav: fix stale hashes reported while a file is bei…
rclone/rclone 60.9k #10271 fs: add --max-errors flag - fixes #4670
rclone/rclone 60.9k #10279 ls, lsl, lsd, lsf, lsjson: add --output-file flag - fixes #8358
wagoodman/dive 54.7k #735 fix: drop lower dir contents when a layer replaces the dir with a symli…
bluenviron/mediamtx 20.7k #6447 playback: limit parallel segment reads in /list (#6446)
influxdata/telegraf 17.9k #20081 feat(inputs.statsd): Add unixgram support
influxdata/telegraf 17.9k #20085 feat(inputs.jenkins): Add option to add build display name and descript…
influxdata/telegraf 17.9k #20086 feat(outputs.postgresql): Allow setting schema from a tag
influxdata/telegraf 17.9k #20087 feat(logging): Add syslog as log format
influxdata/telegraf 17.9k #20088 fix(common.opcua): Handle LocalizedText node values
influxdata/telegraf 17.9k #20089 feat(outputs.mqtt): Add last will and testament support
swaggo/swag 13.1k #2239 fix(v3): support title struct tag in OpenAPI 3.1 field parser
IBM/sarama 12.5k #3753 fix(offset): avoid deadlock when closing during a blocked commit
IBM/sarama 12.5k #3851 fix(protocol): decode compressed batches with more records than bytes
redpanda-data/connect 8.8k #4656 slack: only enforce token prefixes on literal values
webrtc-rs/webrtc 5.2k #955 fix(ice): dial passive ICE-TCP candidates carried in the remote SDP
uptrace/bun 5k #1466 fix: require primary keys for bulk UpdateQuery
uptrace/bun 5k #1467 fix(pgdialect): scan int64 and float64 range bounds instead of panicking
prometheus-community/postgres_exporter 3.6k #1443 stat_wal_receiver: export metrics when replicating without a slot
pdeljanov/Symphonia 3.5k #608 isomp4: Fix integer overflow in stts sample lookups.
pdeljanov/Symphonia 3.5k #609 isomp4: Return an error instead of underflowing in MoofSegment sample l…
pdeljanov/Symphonia 3.5k #610 isomp4: Return an error for a trun data offset outside the stream.
pdeljanov/Symphonia 3.5k #611 ogg: Set packet DTS equal to PTS.
vishvananda/netlink 3.3k #1237 netkit: add PeerAttrs getter
vishvananda/netlink 3.3k #1238 Close subscribe sockets when the receive goroutine exits
pjsip/pjproject 2.7k #5384 pjsua: make the maximum number of transports configurable
obi1kenobi/cargo-semver-checks 1.7k #1797 Add exported_function_now_variadic and exported_function_no_longer_vari…
hyperium/h2 1.6k #1002 fix: requeue released credit on recv window shrink
apache/iceberg-rust 1.4k #3645 fix(transform): avoid overflow in adjust_boundary at type extremes
pion/stun 864 #301 Restrict stun-client to IPv4
JFryy/qq 740 #108 feat: add --indent flag to control output indentation
algesten/str0m 652 #1128 Allow setting msid via DirectApi
algesten/str0m 652 #1129 Remove native OpenSSL DTLS; use dimpl for the openssl backend
asticode/go-astits 617 #79 Sync to the first packet when the stream doesn't start with a sync byte
ClickHouse/clickhouse-rs 569 #507 feat: add Insert::set_buffer_size()
ClickHouse/clickhouse-rs 569 #508 feat: support different column names for serialization and deserializat…
ClickHouse/clickhouse-rs 569 #511 feat(serde): add ::vec helpers for temporal types
flock-php/flock 517 #116 fix(cli): respect ZDOTDIR when adding Flock to the zsh PATH
pion/rtp 478 #372 Drop H264 FU-A fragments without a start
gopacket/gopacket 320 #177 packet: copy zero copy data on the Packets channel path
webrtc-rs/rtc 167 #314 fix(rtc): count incoming RTCP in get_stats()
webrtc-rs/rtc 167 #315 fix(ice): answer USE-CANDIDATE checks without ICE-CONTROLLING on the co…
webrtc-rs/rtc 167 #316 fix(turn): track client permissions per peer IP, not per IP and port
webrtc-rs/rtc 167 #317 fix(ice): re-check a Failed pair when the remote's Binding request arri…
pion/interceptor 149 #470 Assign RTX sequence numbers at send time
pyhss/pyhss 115 #338 diameter: answer with an error Result-Code when a handler raises
free5gc/smf 26 #244 fix: release SMContext and reject when UDM token fetch fails

Selected fixes

Hand-picked from the list above: fixes that stopped data loss, crashes, or security problems in software a lot of people run.

Project Fix
webrtc-rs #954 Every STUN Binding request went out with the all-zero transaction ID; now random per RFC 8489
mediacommon #377 MP4 export wrapped the duration of tracks longer than 2^32 ticks (about 13 h), so players stopped early
gitea #38693 LFS: a failed upload no longer deletes a concurrent upload's metadata
velero #10212 Zip Slip check accepted a sibling directory during archive extraction
rclone #9947 --copy-links no longer follows symlink loops
seaweedfs #11393 Volume server returns an error instead of panicking on a corrupt needle
sarama #3752 Client only deregisters the broker registered under that ID
woodpecker #7192 Race on concurrent pipeline config persist

Projects

Repository What it is
go-diam In progress: typed, code-generated Diameter codecs for Go. proto3 in, plain structs with Marshal/Unmarshal/Validate out, no runtime dictionary
diam-gw Diameter gateway: client library and code generator, with CI and a performance budget
go-eir Equipment Identity Register (EIR) in Go, hexagonal architecture
gohss HSS with S6a, Cx and Sh interfaces
telco Shared telecom utilities: 3GPP types, encoders, and test helpers
go-project-dump Dump a Go project into a single reviewable document
go-auth-middleware JWT authentication and role-based authorization middleware for Gin

The 5GC + EPC stack these grew out of (UDM, AUSF, UDR, HSS, EIR) is private; the free5gc, go-diameter and PyHSS fixes above came from it.

Elsewhere

  • Lead inventor on US 12,621,367 B2: session persistence for stateful microservices, a proxy/worker split with a session-ID affinity table, applied to a 5G SMF.
  • LinkedIn

Focus

  • Real-time media: WebRTC and ICE, RTSP, HLS, RTP/RTCP, and the MP4 and codec parsers that have to survive bad input
  • Go and Rust services on Kubernetes, delivered with Helm and end-to-end tests
  • 5G core and EPC interworking: SBI over HTTP/2 and Diameter

Go · Rust · WebRTC · RTP · RTSP · HLS · Kubernetes · gRPC · HTTP/2 · Diameter · PostgreSQL · ClickHouse

The contribution block is regenerated nightly by scripts/build_stats.py; own and private repositories are excluded, so every row is a public upstream pull request.

About

Profile README; upstream contribution stats regenerated nightly

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages