scalajs-react
Airstream
Our great sponsors
scalajs-react | Airstream | |
---|---|---|
13 | 3 | |
1,631 | 233 | |
- | - | |
4.3 | 7.9 | |
22 days ago | 16 days ago | |
Scala | Scala | |
Apache 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.
scalajs-react
- Scala DevInTraining looking to contribute to projects
-
Monorepo: seeking for an advice for bi-lang project
Then there's scalajs-react, which can be integrated with existing React ecosystem, but it's just sooo compex: macros, 5-6 type parameters, hundreds and hundreds of cryptic types. We decided to stick with TypeScript instead.
-
Show HN: Simple games ported to Scala 3 – Try them in the browser
Or the OG React Scala.js library: https://github.com/japgolly/scalajs-react
-
What are Diode alternatives?
I've started with scalajs-react. Overall the experience was good (perhaps the overloaded API is my biggest concern, but we can live with that). Then I stumbled upon a problem where I need to propagate a state change from two leaf components and found out I need something like this Redux thing. I trtied built-in StateSnapshot, but couldn't make it working. Then I googled for Scala-land alternatives and it seems like there are few semi-abandoned Redux facades and Diode. Diode looks like what I need, but:
-
From ES6 to Scala: Basics
Event ho it's a React wrapper it's still a really good one: https://github.com/japgolly/scalajs-react
The downside of this approach is the ecosystem isn't that big compared to JS.
Japgolly has put a ton of time and care into https://github.com/japgolly/scalajs-react which is a complete React binding in scalajs. This paired with something like Diode (https://github.com/suzaku-io/diode) and you get a full frontend solution in scalajs.
-
What's the maturity level of ScalaJS?
We've got server-side rendering with scalajs-react and scala-graal. Here's a tutorial if anyone's interested. What's really cool about scala-graal is that it has some pretty cool caching so that even with dynamic inputs, you can render pages in nanoseconds (as opposed to 10+ or even 100+ ms).
-
I know the basics, what’s next?
You can use React with Scala.js, and also most other common JS libraries. Or you can use a Scala.js specific library like Laminar, which I haven't tried myself but it looks nice.
-
What language(s) pair well with Rust (learning, using, etc.)? Also, what other languages did you learn before learning Rust?
I don't have a lot of experience with it, but many seem to be very pleased with it. Interop with JS is good and you can use React and other common JS libraries, but there is also Scala.js specific frameworks like Laminar.
Airstream
-
What are Diode alternatives?
Don't know of any other native (to Scala) solution to state management other than Airstream
-
Stockholm Syndrome Escape Velocity (A Talk About Scala.js)
You can see one example in https://github.com/raquo/Airstream/pull/60, you'll need to copy the PR code into your own project though (it doesn't touch Airstream internals so it's easy). If you search Laminar gitter room for "websocket" you'll find other third party websocket implementations too (not sure about specific examples)
What are some alternatives?
slinky - Write Scala.js React apps just like you would in ES6
Laminar - Simple, expressive, and safe UI library for Scala.js
Scala.js - Scala.js, the Scala to JavaScript compiler
ZIO - ZIO — A type-safe, composable library for async and concurrent programming in Scala
React4s - Production ready React wrapper for Scala.js - composable lifecycle - no memoization, no macros, no implicits.
js-scala - js.scala: JavaScript as an embedded DSL in Scala
cats-effect - The pure asynchronous runtime for Scala
sri
tyrian - Elm-inspired Scala UI library.
rustdesk - An open-source remote desktop, and alternative to TeamViewer.
Cycle.js - A functional and reactive JavaScript framework for predictable code
scommons-react - Scala.js facades for core React.js APIs, components and hooks