PIE
async
PIE | async | |
---|---|---|
3 | 3 | |
2,807 | 63 | |
- | - | |
10.0 | 1.8 | |
over 5 years ago | over 2 years ago | |
HTML | Go | |
GNU General Public License v3.0 or later | MIT 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.
PIE
- 10 Weird HTML Hacks That Shaped the Internet
-
JavaScript Gom Jabbar
One thing (only thing) I honestly miss about IE5.5-8 is how amenable the engine was to polyfilling. It wasn't fast, but you could do almost anything with the right polyfill technique. No sessionStorage? Use window.name. No (then-) modern CSS? Use CSS3PIE [0] IE doesn't support the transform CSS property? Use an *.htc behavior to convert the transform to a matrix filter.
It was madness, and it was beautiful in a Cthulhu kind of way.
[0] http://css3pie.com/
-
Cool HTML Elements Nobody Uses
Ah, CSS expressions. So many memories of making IE6/7 polyfills in 2011. Without CSS expressions and behaviors, wonderful tools like CSS3PIE would never have been possible.
https://github.com/lojjic/PIE
As painful as IE6 and IE7 were in the late 2000s/early 2010s, they were surprisingly polyfillable (at a speed cost).
async
-
Retrofitting Async/Await in Go 1.18
// Taken from: https://github.com/nkcmr/async/blob/main/async.go type syncPromise[T any] struct { done chan struct{} v T err error } func (s *syncPromise[T]) Await(ctx context.Context) (T, error) { select { case <-ctx.Done(): var zerov T return zerov, ctx.Err() case <-s.done: return s.v, s.err } } func (s *syncPromise[T]) Settled() bool { select { case <-s.done: return true default: return false } }
-
Go Generics Facilitators
I made this: https://github.com/nkcmr/async so I can experiment with the idea of Promises in Go. Keep in mind it's experimental and I've only lightly played around with the pattern.
- Async: Experimental Promises in Go1.18 with Generics
What are some alternatives?
lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)
generic - A collection of generic data structures written in Go.
ttlcache - An in-memory cache with item expiration and generics
functools - Functional tools in Go 1.18 using newly introduced generics
go - The Go programming language
pie - 🍕 Enjoy a slice! A utility library for dealing with slices and maps that focuses on type safety and performance.
slice - Type-safe functions for common Go slice operations
genfuncs - Go 1.18+ polymorphic generic containers and functions.
confgen - Generate repetitive configs for vite, typescript, eslint, etc
async.go - A collection of utilities for async code in Go.
ci-workflows
fut