javelin
missionary
Our great sponsors
javelin | missionary | |
---|---|---|
4 | 24 | |
799 | 603 | |
0.5% | - | |
6.3 | 7.2 | |
6 months ago | 10 days ago | |
Clojure | Clojure | |
- | 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.
javelin
-
Is there a reframe/cljfx-like subscription/memoization-context library available?
An aspect that flex has that is important when using it with UI frameworks is the ability to control when to start listening to something and when something updates. This is why it differentiates between "signals," which are pure calculations that are inert unless actively being listened to, and "effects" which do side effects and can be started/stopped. In React and other GUI frameworks, you need to be able to abide by the lifecycle of the framework, which means you may need to wait to start running updates until the component your effect is used in has actually appeared in the UI. This is provided by effect and listen returning a function that, when called, starts listening and calling the return value of that stops. Javelin does not give you quite this much control; defc= is eager and will start listening and updating immediately. See https://github.com/hoplon/javelin/issues/27 for their discussion about this very topic.
-
Functional Core, Imperative Shell (2012)
I asked around and there is another option. Something called "Incremental Computations". Here is a Clojure library. I think the examples kinda demo how it works
https://github.com/hoplon/javelin
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?
flex - flex is a reactive signal library for Clojure(Script)
awesome-clojure - A curated list of awesome Clojure libraries and resources. Inspired by awesome-... stuff
subscriptions - A subscriptions library over a source of data (forked + extracted from re-frame)
honeysql - Turn Clojure data structures into SQL
electric - a reactive Clojure dialect for web development that uses a compiler to infer the frontend/backend boundary
react-grid-layout - A draggable and resizable grid layout with responsive breakpoints, for React.
hoplon - Simple and powerful tool for building web apps out of highly composable elements in ClojureScript.
reitit - A fast data-driven routing library for Clojure/Script
ldap3 - A pure-Rust LDAP library using the Tokio stack
malli - High-performance data-driven data specification library for Clojure/Script.
manifold - A compatibility layer for event-driven abstractions
typedclojure - An optional type system for Clojure