cloroutine
missionary
cloroutine | missionary | |
---|---|---|
11 | 24 | |
219 | 608 | |
- | - | |
0.0 | 7.8 | |
about 1 year ago | 16 days ago | |
Clojure | Clojure | |
Eclipse Public License 2.0 | Eclipse Public 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.
cloroutine
-
ClojureRS – Clojure interpreter implemented in Rust
Thanks for sharing! I think these restarts could definitely be implemented as a library in Clojure with the help of a coroutine library like https://github.com/leonoel/cloroutine#guides
-
GitHub - leonoel/cloroutine: Coroutine support for clojure
Do you mean the example here https://github.com/leonoel/cloroutine/blob/master/doc/01-generators.md , with the `*tail* binding? It took me a long time looking at it to finally grok it, and it's really hard to explain in English but basically when the coroutine comes across one of these symbols that are "breaks" (in our case, "yield" is such a breaking symbol), then it will pause the coroutine, and actually call what the symbol points to (the implementation of "yield"), which returns (cons x *tail*), and keep in mind that it is all run within a recursive call to gen-seq where *tail* is bound to a lazy-seq of the remainder of the generator (binding [*tail* (gen-seq gen)] (gen)), it's pretty confusing but yeah just have to stare at it for a long time I think haha.
-
CLJ-2555: clojure.core/iteration · clojure/clojure@e45e478
I think Clojure is really missing python/js-style generators, like what is implemented in https://github.com/leonoel/cloroutine/blob/master/doc/01-generators.md
-
Real-life use cases for CLJS macros
The next level up is core.async go blocks which compile your AST to a state machine. Also see cloroutine which also compiles the AST to a state machine or something, one of the tutorials uses cloroutine to add async/await to Clojure.
- Continuations in Clojure
- 6 Years of Professional Clojure
-
Common Lisp Style Conditions+Restarts in Clojure
Coroutines are a more general concept, and can be used to implement conditions/delimited continuations. There’s an example in their docs.
missionary
- Humble Chronicles: Managing State with Signals
- Is there a reframe/cljfx-like subscription/memoization-context library available?
-
[Blog] The Web Before Teatime
I think the reactive query problem is more of a spectrum of tradeoffs, there's a middle ground between "full page refresh on nav" and "refresh all query subscriptions per user per tx". Truly realtime things like chat come from a streaming event source (not a database) and even in a chat app, most of the information coordinates on a page is slow moving. So really this is about regaining control over concurrent data flow so we can sample different views at different speeds. See technologies like https://github.com/leonoel/missionary.
-
Comparison of manifold and clojure.core.async
I wonder if anyone can compare these to missionary?
-
Is there a general IO library built to work with core.async?
related: https://github.com/leonoel/missionary
-
Structuring Clojure Applications
- https://github.com/leonoel/missionary
-
IO/async monad without the indirect monadic style: Possible? needed?
https://github.com/leonoel/missionary has excellent syntax, it uses a macro to extend regular clojure syntax with monadic join operator – basically turning clojure sexprs into do-notation
-
What are the essential libraries to learn for web dev
I recommend having a look at missionary - it is probably the most essential library in our application. But it depends on what type of application you are building.
-
UIs are streaming DAGs
Process supervision is what Missionary implements: https://github.com/leonoel/missionary
-
Questions about Rich Hickey's comments on static types
Agree - mostly the opinions are just dated, in 2005-2012 the pure FP world (especially Scala) was in rough shape but then in 2018 Maybe Not (the really controversial talk about "Maybe Sheep") it didn't seem like he had taken the time to understand haskell. I would love to see how his opinions have evolved since then, in the 2017 interview with fogus he said "If I had more free time, I’d spend it with Haskell". Haskell has especially come a long way in 2018-2022 with the popularization of functional effect systems which are extraordinarily powerful; for example https://github.com/leonoel/missionary (2020-2022) is the best Clojure effect system and is a leap forward over core.async (2013), but that 9 year difference is a lifetime in CS
What are some alternatives?
zio-schema - Compositional, type-safe schema definitions, which enable auto-derivation of codecs and migrations.
awesome-clojure - A curated list of awesome Clojure libraries and resources. Inspired by awesome-... stuff
farolero - Thread-safe Common Lisp style conditions and restarts for Clojure(Script) and Babashka.
honeysql - Turn Clojure data structures into SQL
core.async - Facilities for async programming and communication in Clojure
react-grid-layout - A draggable and resizable grid layout with responsive breakpoints, for React.
ClojureRS - Clojure, implemented atop Rust (unofficial)
reitit - A fast data-driven routing library for Clojure/Script
clojure-scheme - Clojure to Scheme to C to the bare metal.
malli - High-performance data-driven data specification library for Clojure/Script.
await-cps - async/await for continuation-passing style functions
manifold - A compatibility layer for event-driven abstractions