Skip to content

Commit 7b95abd

Browse files
committed
Condense and organize the list of libraries.
1 parent 73c6aac commit 7b95abd

File tree

1 file changed

+43
-151
lines changed

1 file changed

+43
-151
lines changed

index.md

Lines changed: 43 additions & 151 deletions
Original file line numberDiff line numberDiff line change
@@ -62,182 +62,74 @@ Presentations:
6262
* [Live-coding with Scala.js at Scala eXchange 2013](http://skillsmatter.com/podcast/scala/scala-js-write-in-scala-for-the-browser-4567)
6363
* [Presentation of Scala.js at Scala Days 2013](http://www.parleys.com/play/51c380bfe4b0ed8770356866) (older and somewhat obsolete)
6464

65-
### Libraries
66-
67-
This is a collection of libraries that work with Scala.js. Some of them, like `scala-js-dom` and `scala-js-jquery`, are specific to Javascript and don't make sense on the JVM. Some others are such as `scala-async` are pure-macro projects, and thus work with Scala.js out of the box. Most of them, though, started off as Scala-JVM projects and were ported over, and thus have separate artifacts to run on each platforms. The SBT snippets given are for the version that runs on Scala.js.
68-
69-
####[scala-js-dom](https://github.com/scala-js/scala-js-dom)
70-
{% highlight scala %}
71-
"org.scala-lang.modules.scalajs" %%% "scalajs-dom" % "0.6"
72-
{% endhighlight %}
73-
Static types for the DOM API, by Li Haoyi
74-
75-
####[scala-js-jquery](https://github.com/scala-js/scala-js-jquery)
76-
{% highlight scala %}
77-
"org.scala-lang.modules.scalajs" %%% "scalajs-jquery" % "0.6"
78-
{% endhighlight %}
79-
Static types for jQuery, by Sébastien Doeraene
80-
81-
####[scala-js-react](https://github.com/japgolly/scalajs-react)
82-
{% highlight scala %}
83-
// Minimal usage
84-
libraryDependencies += "com.github.japgolly.scalajs-react" %%% "core" % "0.6.1"
85-
86-
// Test support including ReactTestUtils
87-
libraryDependencies += "com.github.japgolly.scalajs-react" %%% "test" % "0.6.1" % "test"
88-
89-
// Scalaz support
90-
libraryDependencies += "com.github.japgolly.scalajs-react" %%% "ext-scalaz70" % "0.6.1" // or
91-
libraryDependencies += "com.github.japgolly.scalajs-react" %%% "ext-scalaz71" % "0.6.1"
92-
{% endhighlight %}
93-
Lifts Facebook's React library into Scala.js and endeavours to make it as type-safe and Scala-friendly as possible, by David Barri
94-
95-
####[scala-js-binding](https://github.com/antonkulaga/scala-js-binding)
96-
{% highlight scala %}
97-
addSbtPlugin("me.lessis" % "bintray-sbt" % "0.1") // project/build.sbt
98-
resolvers += bintray.Opts.resolver.repo("denigma", "denigma-releases")
99-
libraryDependencies += "org.denigma" %%% "binding" % "0.4.4"
100-
{% endhighlight %}
101-
102-
A ScalaJS html binding library, by Anton Kulaga
103-
104-
####[Scalatags](https://github.com/lihaoyi/scalatags)
105-
{% highlight scala %}
106-
"com.scalatags" %%% "scalatags" % "0.4.2"
107-
{% endhighlight %}
108-
A HTML templating library/DSL that works on both Scala-JVM and Scala-JS, by Li Haoyi
109-
110-
####[Scala.Rx](https://github.com/lihaoyi/scala.rx)
111-
{% highlight scala %}
112-
"com.scalarx" %%% "scalarx" % "0.2.5"
113-
{% endhighlight %}
114-
A change-propagation/FRP library that runs on both Scala-JVM and Scala-JS, by Li Haoyi
115-
116-
####[uTest](https://github.com/lihaoyi/utest#%C2%B5test-011)
117-
{% highlight scala %}
118-
addSbtPlugin("com.lihaoyi" % "utest-js-plugin" % "0.2.4") // project/build.sbt
119-
"com.lihaoyi" %%% "utest" % "0.2.4"
120-
{% endhighlight %}
121-
122-
A tiny, portable unit testing library that lets you run the same tests on both Scala-JVM and Scala-JS, by Li Haoyi
65+
## Libraries
12366

124-
####[Little Spec](https://github.com/eecolor/little-spec)
125-
{% highlight scala %}
126-
libraryDependencies += "org.qirx" %%% "little-spec" % "0.3" % "test"
127-
ScalaJSKeys.scalaJSTestFramework in Test := "org.qirx.littlespec.scalajs.TestFramework"
128-
{% endhighlight %}
129-
A small extendable test/specification library that can generate documentation, works on both Scala-JVM and Scala-JS, by EECOLOR
67+
This is a collection of libraries known to work with Scala.js.
68+
Some of them, like `scala-js-dom` and `scala-js-jquery`, are specific to Javascript and don't make sense on the JVM.
69+
Some others, such as `scala-async`, are pure-macro projects, and thus work with Scala.js out of the box.
70+
Most of them, though, are cross-compiling over JVM and JS, and thus have separate artifacts to run on each platform.
13071

131-
####[MiniTest](https://github.com/monifu/minitest)
132-
{% highlight scala %}
133-
libraryDependencies += "org.monifu" %%% "minitest" % "0.2" % "test"
72+
### Static types for JavaScript libraries
13473

135-
testFrameworks += new TestFramework("minitest.runner.Framework")
136-
{% endhighlight %}
74+
* [scalajs-dom](https://github.com/scala-js/scala-js-dom): static types for the DOM API, plus a few extensions
75+
* [scalajs-jquery](https://github.com/scala-js/scala-js-jquery): static types for jQuery
13776

138-
MiniTest is a light and effective testing framework for Scala, that lets you
139-
share tests across Scala on the JVM and Scala.js, by Alexandru Nedelcu.
77+
### Testing frameworks
14078

141-
NOTE: At this point it is compiled for Scala.js
142-
[milestone 0.6.0-M2](http://www.scala-js.org/news/2014/12/05/announcing-scalajs-0.6.0-M2/),
143-
and won't work with the stable `0.5.x`.
79+
All these testing frameworks cross-compile on the JVM and JS.
14480

145-
####[uPickle](https://github.com/lihaoyi/upickle)
146-
{% highlight scala %}
147-
"com.lihaoyi" %%% "upickle" % "0.2.5"
148-
{% endhighlight %}
149-
Statically-typed pickling (via typeclasses/macros) for both Scala-JVM and Scala-JS, by Li Haoyi
81+
* [uTest](https://github.com/lihaoyi/utest)
82+
* [MiniTest](https://github.com/monifu/minitest)
83+
* [Little Spec](https://github.com/eecolor/little-spec)
15084

151-
####[autowire](https://github.com/lihaoyi/autowire)
152-
{% highlight scala %}
153-
"com.lihaoyi" %%% "autowire" % "0.1.2"
154-
{% endhighlight %}
155-
Statically-typed Ajax calls and RPCs for both Scala-JVM and Scala-JS, by Li Haoyi
85+
### HTML templating libraries
15686

157-
####[Scala.js Pickling](https://github.com/scala-js/scala-js-pickling)
158-
{% highlight scala %}
159-
"org.scalajs" %%% "scalajs-pickling" % "0.3"
160-
{% endhighlight %}
161-
A cross-compiling pickling (aka serialization) library for Scala.js and Scala
162-
with a common JSON-based format, by Sébastien Doeraene
87+
* [Scalatags](https://github.com/lihaoyi/scalatags): cross-compiling HTML templating library/DSL that works on both Scala/JVM and Scala.js
16388

164-
####[Prickle](https://github.com/benhutchison/prickle)
165-
{% highlight scala %}
166-
"com.github.benhutchison" %%% "prickle" % "1.1.0"
167-
{% endhighlight %}
168-
Yet another statically-typed pickling library for Scala.js / Scala.jvm, with support for pickling object graphs
169-
containing shared objects and cycles, by Ben Hutchison
89+
### UI frameworks
17090

171-
####[Monifu](https://github.com/alexandru/monifu)
91+
* [scala-js-react](https://github.com/japgolly/scalajs-react): type-safe and Scala-friendly library to use Facebook's React.js
92+
* [scala-js-binding](https://github.com/antonkulaga/scala-js-binding): An all-Scala.js HTML binding library
93+
* [scalajs-angular](https://github.com/greencatsoft/scalajs-angular) with [TodoMvc example](https://github.com/greencatsoft/scalajs-angular-todomvc): static types and complementary API for AngularJS
17294

173-
Reactive extensions (Rx) with back-pressure, atomic references and other multi-threading primitives cross-compiled to Scala.js, by Alexandru Nedelcu
95+
### Serialization/pickling libraries
17496

175-
####[Scalaz](https://github.com/japgolly/scalaz)
176-
{% highlight scala %}
177-
"com.github.japgolly.fork.scalaz" %%% "scalaz-core" % "7.1.0-4"
178-
"com.github.japgolly.fork.scalaz" %%% "scalaz-effect" % "7.1.0-4"
179-
// etc
180-
{% endhighlight %}
181-
Port of [Scalaz](https://github.com/scalaz/scalaz) to Scala.js, maintained by David Barri
97+
* [uPickle](https://github.com/lihaoyi/upickle): cross-compiling statically-typed pickling (via typeclasses/macros) for both Scala/JVM and Scala.js
98+
* [Prickle](https://github.com/benhutchison/prickle): cross-compiling statically-typed pickling library with support for pickling object graphs containing shared objects and cycles
99+
* [Scala.js Pickling](https://github.com/scala-js/scala-js-pickling): cross-compiling pickling library based on explicit registration of picklers
182100

183-
####[Monocle](https://github.com/japgolly/Monocle)
184-
{% highlight scala %}
185-
"com.github.japgolly.fork.monocle" %%% "monocle-core" % "1.0.1"
186-
{% endhighlight %}
187-
Port of [Monocle](https://github.com/julien-truffaut/Monocle) to Scala.js, maintained by David Barri
101+
### Client-server communication
188102

189-
####[RNG](https://github.com/japgolly/rng)
190-
{% highlight scala %}
191-
"com.github.japgolly.fork.nicta" %%% "rng" % "1.3.0"
192-
{% endhighlight %}
193-
Port of [RNG](https://github.com/NICTA/rng) to Scala.js, maintained by David Barri
103+
* [autowire](https://github.com/lihaoyi/autowire): cross-compiling statically-typed Ajax calls and RPCs
194104

195-
####[Shapeless](https://groups.google.com/forum/#!searchin/scala-js/shapeless/scala-js/5Sf2up0z3PU/9F9SYB0qHEcJ)
196-
{% highlight scala %}
197-
resolvers += "bintray-alexander_myltsev" at "http://dl.bintray.com/content/alexander-myltsev/maven"
198-
libraryDependencies += "name.myltsev" %% "shapeless_sjs0.5" % "2.0.0"
199-
{% endhighlight %}
105+
### FRP/reactive extensions
200106

201-
Port of [Shapeless](https://github.com/milessabin/shapeless) to Scala.js, maintained by Alexander Myltsev
107+
* [Scala.Rx](https://github.com/lihaoyi/scala.rx): cross-compiling change-propagation/FRP library
108+
* [Monifu](https://github.com/alexandru/monifu): cross-compiling reactive extensions (Rx) with back-pressure, atomic references and other multi-threading primitives
202109

203-
####[Scala-Async](https://github.com/scala/async)
110+
### Ports of well-known Scala libraries
204111

205-
{% highlight scala %}
206-
"org.scala-lang.modules" %% "scala-async" % "0.9.1"
207-
{% endhighlight %}
112+
* [Scalaz](https://github.com/japgolly/scalaz)
113+
* [Monocle](https://github.com/japgolly/Monocle)
114+
* [RNG](https://github.com/japgolly/rng)
115+
* [Shapeless](https://groups.google.com/forum/#!searchin/scala-js/shapeless/scala-js/5Sf2up0z3PU/9F9SYB0qHEcJ)
208116

209-
Scala-Async is a pure-macro project without any runtime dependencies. Thus it works with Scala.js out of the box, without needing to be specially compiled for it.
210-
211-
212-
####Scalaxy [Loops](https://github.com/ochafik/Scalaxy/tree/master/Loops) and [Streams](https://github.com/ochafik/Scalaxy/tree/master/Streams)
213-
214-
Another pure-macro project, Scalaxy loops and streams work great with Scala.js without needing to be specially compiled for it.
215-
216-
####[scalajs-angular](https://github.com/greencatsoft/scalajs-angular) with [TodoMvc example](https://github.com/greencatsoft/scalajs-angular-todomvc)
217-
218-
Static types and complementary API for AngularJS, by Xavier Cho
219-
220-
### Skeletons
221-
222-
####[workbench-example-app](https://github.com/lihaoyi/workbench-example-app)
223-
224-
A skeleton application using [Scala.js workbench](https://github.com/lihaoyi/scala-js-workbench) for live-reloading in the browser, together with a collection of sample applications developed using it
225-
226-
####[Play! application with Scala.js](https://github.com/vmunier/play-with-scalajs-example)
227-
228-
by Vincent Munier
117+
### Miscellaneous
229118

230-
####[Node.js module with Scala.js](https://github.com/rockymadden/scala-node-example)
119+
* [Scala-Async](https://github.com/scala/async) (works out-of-box with Scala.js)
120+
* Scalaxy [Loops](https://github.com/ochafik/Scalaxy/tree/master/Loops) and [Streams](https://github.com/ochafik/Scalaxy/tree/master/Streams) (work out-of-box with Scala.js)
231121

232-
by Rocky Madden
122+
## Skeletons
233123

234-
### Tools
124+
* [workbench-example-app](https://github.com/lihaoyi/workbench-example-app): skeleton application using [Scala.js workbench](https://github.com/lihaoyi/scala-js-workbench) for live-reloading in the browser, together with a collection of sample applications developed using it
125+
* [Play! application with Scala.js](https://github.com/vmunier/play-with-scalajs-example)
126+
* [Node.js module with Scala.js](https://github.com/rockymadden/scala-node-example)
235127

236-
####[Scala.js workbench](https://github.com/lihaoyi/scala-js-workbench)
128+
## Tools
237129

238-
A sbt plugin for Scala.js projects for live-reloading in the browser ([example app](https://github.com/lihaoyi/workbench-example-app)), by Li Haoyi
130+
* [Scala.js workbench](https://github.com/lihaoyi/scala-js-workbench): sbt plugin for Scala.js projects for live-reloading in the browser ([example app](https://github.com/lihaoyi/workbench-example-app))
239131

240-
### Miscellaneous
132+
## Miscellaneous
241133

242134
* [Port of the Dart benchmark harness](https://github.com/jonas/scala-js-benchmarks)
243135
by Jonas Fonseca

0 commit comments

Comments
 (0)