tool-conventions
ts-belt
tool-conventions | ts-belt | |
---|---|---|
3 | 10 | |
287 | 1,036 | |
2.4% | - | |
5.6 | 0.0 | |
10 days ago | about 2 months ago | |
TypeScript | ||
Artistic License 2.0 | 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.
tool-conventions
-
Isolates, MicroVMs, and WebAssembly (In 2022)
> Better interoperability
AFAIK, the examples you give all target a basic C ABI [0] or can be made to target the same ABI. In Rust, it means targeting wasm32-unknown-emscripten
The Rust team is also working on a "WASM ABI"[1] which would be useful in taking advantage of stuff like multi-value returns, and other compilers could just choose to target that. More likely, the C ABI on WASM will be updated to account for missing features, and that'll be the standard for interoperability in the WASM ecosystem.
[0]: https://github.com/WebAssembly/tool-conventions/blob/main/Ba...
[1]: https://github.com/rust-lang/lang-team/blob/master/design-me...
-
Features of a dream programming language: 2nd draft.
C ABI: Compatible with the C language Application Binary Interface (ABI). So code in the language is usable from other languages. Inspired by Zig. Since compiling to WASM is desirable, WASM's C ABI could probably be used, instead of a separate implementation towards the C ABI.
-
Crates for (mutable) statics with non const initialization.
There is maybe a solution. From what I found the linker will glue constructor functions and they have an associated priority. (look https://github.com/WebAssembly/tool-conventions/blob/master/Linking.md here for the "linking meta data section"). I explored the ldd/wasm source code directory and it looks like there are also destructor functions. I have not found out in which sections such functions should be placed (after 1h of exploration). Would you like to pursue? I am ok to receive pushes or even share owner ship of the repository.
ts-belt
- [AskJS] I've often read a lot of "if" statements can quickly turn into an anti pattern and convolute code. What are some strategies to avoid unnecessary "if" statements and ways to notice when you start to introduce this anti pattern?
-
libraries you are happy that you discovered them
check ts-belt, if you want really good TS support (it contains much more functions than remeda and it has awesome performance) https://github.com/mobily/ts-belt benchmarks: https://mobily.github.io/ts-belt/benchmarks/v3.12.0/macbook-pro-2021
- ts-belt - Fast, modern, and practical utility library for FP in TypeScript / Flow / JavaScript. (Faster than ramda, rambda, remeda and lodash/fp.)
- Fast, modern, and practical utility library for FP in TypeScript. (Faster than ramda, rambda, remeda and lodash/fp.)
- Ts-belt – Fast, modern, and practical utility library for FP in TypeScript
-
Features of a dream programming language: 2nd draft.
Piping, or some form of it. But always top-to-bottom or left-to-right. Inspired by Bash, and functional programming with pipes (Elixir, BuckleScript, and ts-belt). Data-first instead of data-last.
-
[AskJS] Is anyone using Monads (or other advanced functional programming techniques) in production code? If so, what are you using them for?
try ts-belt https://mobily.github.io/ts-belt/ which has pragmatic approach and is easier to learn than fp-ts
-
ts-belt → fast, modern, and practical utility library for FP in TypeScript/Flow/JavaScript
Repo: https://github.com/mobily/ts-belt Documentation: https://mobily.github.io/ts-belt/
-
TS Belt - fast, modern, and practical utility library for FP in TypeScript
Let me know if you're willing to use ts-belt in your project! Also, don't forget to give a star to ts-belt on Github. Any feedback or suggestions are appreciated as well.
What are some alternatives?
dwarf-2-sourcemap - A DWARF to SourceMaps converter for WASM
io-ts - Runtime type system for IO decoding/encoding
wyrcan
pratica - 🥃 Functional Algebraic Data Types
ramda - :ram: Practical functional Javascript
Immer - Create the next immutable state by mutating the current one
krustlet - Kubernetes Rust Kubelet [Moved to: https://github.com/krustlet/krustlet]
common - A minimal library that defines primitive building blocks of PHP code.
monads - Option, Result, and Either types for TypeScript - Inspired by Rust 🦀
language-server-protocol - Defines a common protocol for language servers.
matechs-effect - A Fully-fledged functional effect system for typescript with a rich standard library [Moved to: https://github.com/Effect-TS/core]