kotlin-result
reactor-core
Our great sponsors
kotlin-result | reactor-core | |
---|---|---|
35 | 21 | |
934 | 4,807 | |
- | 0.6% | |
8.9 | 9.4 | |
13 days ago | 5 days ago | |
Kotlin | Java | |
ISC License | 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.
kotlin-result
-
JEP draft: Exception handling in switch
Author here. I have no idea what you could possibly mean with this comment. The coroutineBinding implementation correctly uses the coroutines API for parallel decomposition of Result bindings, exactly how the Kotlin Corotines guide tells you to (backed by a [Mutex](https://github.com/michaelbull/kotlin-result/blob/master/kot...)). The coroutineBinding isn't even the main selling point of the library, you can use it without using this feature entirely.
Please could you elaborate on what "looking thread safe" means to you? The only portion of the library that supports concurrency *is* thread safe - the unit tests prove it and the use of concurrency primitives such as Kotlin's Mutex are indicative of this. I truly have no idea how you've judged the entirely of the lbirary on whether it's "thread safe" when there is a single function that's related to concurrency and it is very clearly using concurrency primitives.
-
How do you define errors?
Sealed classes in combination with a library like https://github.com/michaelbull/kotlin-result will get you what you need. Essentially at that point you'll be doing error handling the way you would in Rust, where a 1-level deep sealed class containing data classes as children act as the root error type and each of its variants. If you have errors coming from two different domains you just create a wrapper error type for each domain.
-
Result Class with Generic Type for both Success and Failure States
This is a great result lib: https://github.com/michaelbull/kotlin-result
-
Is runCatching in use in any of your projects ? My team is abusing it
Lastly I do not like kotlin's Result and we use the kotlin-result library which is more expressive and not tied to Throwable (similar to Arrow's Either).
-
Struggling with software robustness with Kotlin
In my own code, I started to use explicit error handling. I'm currently experimenting with Result (from https://github.com/michaelbull/kotlin-result) and Raise (from https://arrow-kt.io/).
-
Thoughts on Kotlin Multiplatform?
un-related to multiplatform i've found it extremely helpful to wrap things in a Result type. If something can throw an error, it get's a Result return type. It sounds like that would help your use case too. The built in Result may be useful too
-
Programming with Result
This is a better impl.
- It seems like I'm forced to make this choice at least once a day
-
Are nearly all your functions suspend?
Using a result type can help to differentiate quite nicely. https://github.com/michaelbull/kotlin-result
-
Kotlin Nitpicks: Language and Standard Library
kotlin-result
reactor-core
-
Is it wrong to use "try-catch" inside a reactive stream operator (project reactor)?
I was exploring reactive streams with project reactor and I encountered a use case where I needed to skip to the next event if an error occurred during the processing of the current event (e.g. deserialization issue).
-
Modern Async Primitives on iOS, Android, and the Web
Kotlin also has a construct for asynchronous collections/streams. Kotlin's version of AsyncSequence is called a Flow. Just as Swift's AsyncSequence builds upon prior experience with RxSwift and Combine, Kotlin's Flow APIs build upon earlier stream/collection APIs in the JVM ecosystem: Java's RxJava, Java8 Streams, Project Reactor, and Scala's Akka.
-
Alternatives to scala FP
Java's projectreactor.io ? It is widely used in Java world, see Spring WebFlux.
-
Hydroflow: Dataflow Runtime in Rust
I guess more a closer comparison would be with the Project Reactor https://projectreactor.io/ which is also a low level framework for data processing.
-
Reactive Backend Applications with Spring Boot, Kotlin and Coroutines (Part 1)
Spring Framework is one of the most popular choices for web applications. It comes with a great ecosystem, tooling, and support. Spring applications are mainly written in Java. While they can serve quite well in many different domains and use cases, they may not be a good fit for modern-day applications which require low-latency and high-throughput. This is where the reactive programming paradigm could help because the paradigm is designed to address these issues by its non-blocking nature. Spring already supports reactive programming via Project Reactor.
-
Brief Intro to Reactive Streams with Project Reactor
The reactive streams API provides the specification for non-blocking async streams processing with back pressure mechanism, and Project Reactor is an implementation written in java.
- Angular for Junior Developers: Promises vs Observables
-
How much of real world programming involves using containers and for loops?
https://projectreactor.io/ https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html https://rxjs.dev/ https://developer.android.com/kotlin/coroutines https://developer.apple.com/documentation/combine
- Spring Reactor
-
Reactor bad, Loom good - but how will the landscape shape out?
With respect to Loom, it could be much easier for synchronous and reactive code to interoperate using schedulers that take advantage of Loom. The impact of Loom on Project Reactor was discussed in #3084, you might find it interesting.
What are some alternatives?
result4k
Reactive Streams - Reactive Streams Specification for the JVM
kotlin-monads - Monads for Kotlin
RxKotlin - RxJava bindings for Kotlin
Result - The modelling for success/failure of operations in Kotlin and KMM (Kotlin Multiplatform Mobile)
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
Arrow Meta - Functional companion to Kotlin's Compiler
reactor-kotlin-extensions
Komprehensions - Do comprehensions for Kotlin and 3rd party libraries [STABLE]
redux-kotlin - Predictable state container for Kotlin apps
Kategory - Λrrow - Functional companion to Kotlin's Standard Library
Async Http Client - Asynchronous Http and WebSocket Client library for Java