heapless
KEEP
Our great sponsors
heapless | KEEP | |
---|---|---|
4 | 61 | |
1,387 | 3,286 | |
2.9% | 1.4% | |
8.7 | 5.4 | |
23 days ago | 2 days ago | |
Rust | Markdown | |
Apache License 2.0 | Apache License 2.0 |
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.
heapless
- """may_dangle""" stabilization
-
Rust: A Critical Retrospective
> we did not have Vec because we were no-std + stable so we literally had to use arrays
It's true that Vec isn't available in a no-std context, but don't think it follows that arrays are the only other option - see heapless for one example: https://github.com/japaric/heapless
I also agree with some of the ancestors: the post seems to say that the Rust language couldn't handle arrays with more than 32 elements, and (as someone who's written a fair bit of no-std Rust before const generic) that doesn't seem right. At first, this did seem awkward to me as well, but in practice I haven't found it to be a significant limitation. Was there a particular scenario where it wasn't feasible to wrap a >32 element array in your own type and implement Default on it?
-
Now that the long-awaited const generics (MVP) have come to stable in 1.51, what crates are going to gain the most from it?
It's happening
-
Writing a proposal to use Rust at work
heapless has both SPSC and MPMC channels that work on embedded
KEEP
-
JEP draft: Exception handling in switch
`Either foo()` and `Foo foo() throws MyError` and are pretty much isomorphic.
https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/...
-
Project Valhalla: A look inside Java's epic refactor
Nice. So for example, it looks like Kotlin has a nearly identical feature at the language level which will be optimizable when Valhalla ships: https://github.com/Kotlin/KEEP/blob/master/notes/value-class...
> In the future, in a Valhalla-capable JVM, JVM primitive classes will enable efficient representation of Kotlin value classes with an arbitrary number of underlying fields on JVM.
-
Unchecked Java: Say Goodbye to Checked Exceptions Forever
Most other languages agree that checked exceptions are not good by not having them.
As for alternatives, Try/Result and similar monads have decent adoption even in Java, but personally I quite like the Kotlin philosophy [1] to not have generic error containers and either use runtime exceptions or make failures of the return type.
[1] https://github.com/Kotlin/KEEP/blob/master/proposals/stdlib/...
-
Meet Kotlin 1.9 "data object"
If you want to read more and don't want to google it: https://github.com/Kotlin/KEEP/blob/data-objects/proposals/data-objects.md
-
Coroutine books or resources
Under the hood: https://github.com/Kotlin/KEEP/blob/master/proposals/coroutines.md .
- How @Compose annotation works under the hood?
-
KotlinConf ’23 Recap
you can check more here
- Implicit function arguments?
-
If you could remove one feature from Kotlin which one would that be?
You can use explicit API mode, then everything needs explicit visibility
- Is runCatching in use in any of your projects ? My team is abusing it
What are some alternatives?
tinyvec - Just, really the littlest Vec you could need. So smol.
KorGE - KorGE Game Engine. Multiplatform Kotlin Game Engine
blisp - A statically typed Lisp like scripting programming language for Rust.
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
scapegoat - Safe, fallible, embedded-friendly ordered set/map via a scapegoat tree. Validated against BTreeSet/BTreeMap.
kotlin-multiplatform-libsodium - A kotlin multiplatform wrapper for libsodium, using directly built libsodium for jvm and native, and libsodium.js for js targets.
utils - Utility crates used in RustCrypto
htmx - </> htmx - high power tools for HTML
regex-automata - A low level regular expression library that uses deterministic finite automata.
kotlin-power-assert - Kotlin compiler plugin to enable diagrammed function calls in the Kotlin programming language
cassette - A simple, single-future, non-blocking executor intended for building state machines. Designed to be no-std and embedded friendly.
swift-evolution - This maintains proposals for changes and user-visible enhancements to the Swift Programming Language.