gopcap
dns
gopcap | dns | |
---|---|---|
1 | 8 | |
482 | 7,764 | |
- | - | |
0.0 | 7.8 | |
almost 3 years ago | about 20 hours ago | |
Go | Go | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
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.
gopcap
-
A brief look at Go's new generics
Among the many early review articles of pre-1.0 Go, a common criticism was the lack of generics, or parameterized types. Having used Go for my personal projects since late 2009 and professionally since 2013, I kind of understood the criticism because it was the kind of feature that you would naturally expect in a new language as other modern languages of the time would often feature generics in some shape or form. C++ went to the extreme with it, as its template system goes beyond just type parameterization and was even found to be Turing-complete. Practically though, in the several years of actively using Go pretty much every work day, writing many tens of thousands of line of code, I've only ever come across one situation where I thought that parameterized types would have been really handy and would have made it so much easier to write less repetitive code.
dns
-
Wrote a CLI tool to check DNS configurations quickly (an alternative to dig)
The heavylifting is done by this package: https://github.com/miekg/dns.
-
Why do clients ask the authoritive nameserver what is NS-records are?
Apart from `dig`, clients like https://github.com/miekg/dns show the same behavior.
-
Book recommendations for network programming
For the DNS i wrote a PiHole clone, which on the core it uses github.com/miekg/dns, to upstream queries and also to handle the custom entries, i've been wanting to publish that project but haven't done so cause the code is a bit messy since i did it as a PoC mostly, when comparing it to pihole it has the advantage that its really resource light mostly on the admin features, the dns resolving performs pretty much the same.
- DNS Library in Go
-
fastdns - fast dns server for go (alpha stage)
coredns uses github.com/miekg/dns under the hood
-
How to unit test net.Resolver?
You can do the same with net.Resolver, either by just setting it's Dial function (and PreferGo=true). You can use https://pkg.go.dev/golang.org/x/net/dns/dnsmessage or https://github.com/miekg/dns to implement an in-process server, either over TCP/UDP or skipping real networking completely, just like you can do with https://golang.org/pkg/net/http/httptest
-
Go 1.16 will make system calls through Libc on OpenBSD
Had a similar problem a couple years ago where I needed to use alternative DNS libraries to troubleshoot issues in a company's infrastructure.
Golang's rules for what implementation to use are found here: https://golang.org/pkg/net/#hdr-Name_Resolution
A really solid alternative DNS client implementation can be found here: https://github.com/miekg/dns. Real easy to read and vet compared to a few other libraries I ran into when working on this problem.
What are some alternatives?
gopacket - Provides packet processing capabilities for Go
ethernet - Package ethernet implements marshaling and unmarshaling of IEEE 802.3 Ethernet II frames and IEEE 802.1Q VLAN tags. MIT Licensed.
llb
sslb - Golang Super Simple Load Balance
arp - Package arp implements the ARP protocol, as described in RFC 826. MIT Licensed.
VncProxy - An RFB proxy, written in go that can save and replay FBS files
ftp - FTP client package for Go
fortio - Fortio load testing library, command line tool, advanced echo server and web UI in go (golang). Allows to specify a set query-per-second load and record latency histograms and other useful stats.
quic-go - A QUIC implementation in pure Go
buffstreams - A library to simplify writing applications using TCP sockets to stream protobuff messages
kcptun - A Stable & Secure Tunnel based on KCP with N:M multiplexing and FEC. Available for ARM, MIPS, 386 and AMD64。N:M 多重化と FEC を備えた KCP に基づく安定した安全なトンネル。 N:M 다중화 및 FEC를 사용하는 KCP 기반의 안정적이고 안전한 터널입니다. Un tunnel stable et sécurisé basé sur KCP avec multiplexage N:M et FEC.