Skip to content
/ outwatch Public
forked from outwatch/outwatch

A purely functional and reactive UI framework based on Monix and VirtualDom

License

Notifications You must be signed in to change notification settings

busti/outwatch

This branch is 1 commit ahead of, 13 commits behind outwatch/outwatch:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jun 26, 2024
1b87831 · Jun 26, 2024
Jun 9, 2024
Jun 30, 2023
Jun 22, 2024
Jul 6, 2022
Jun 22, 2024
Jun 9, 2024
Jan 10, 2023
Jun 19, 2024
Jun 19, 2024
Apr 3, 2022
Mar 30, 2024
Jul 27, 2021
Sep 30, 2022
Mar 30, 2024
Mar 29, 2022
Nov 4, 2016
Jun 26, 2024
Jun 22, 2024
Nov 14, 2020

Repository files navigation

Foobar

The Functional and Reactive Web-Frontend Library for Scala.js

Typelevel incubator codecov Discord outwatch Scala version support

import outwatch._
import outwatch.dsl._
import colibri._
import cats.effect.{IO, IOApp}

object Main extends IOApp.Simple {
  override def run = {
    val counter = Subject.behavior(0)
    val myComponent = div(
      button("+", onClick(counter.map(_ + 1)) --> counter),
      counter,
    )

    Outwatch.renderReplace[IO]("#app", myComponent)
  }
}

In Outwatch, you can describe your whole web application without doing any side effect - you only run your application when rendering it.

  • Write UI-components using pure functions
  • Manage state in a referentially transparent way using cats-effect
  • Built-in lightweight Observable and Subject types from colibri
  • Seamlessly works with existing reactive programming libraries: ZIO, fs2, Airstream, scala.rx
  • Low-boilerplate, many convenient helper functions
  • Built on top of snabbdom, a virtual dom library

You will find interactive examples and explanations in our documentation.

Bugs and Feedback

For bugs, questions and discussions please use GitHub Issues.

Community

We adopted the Scala Code of Conduct. People are expected to follow it when discussing Outwatch on the Github page, Gitter channel, or other venues.

LICENSE

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

A purely functional and reactive UI framework based on Monix and VirtualDom

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Scala 97.0%
  • JavaScript 2.9%
  • CSS 0.1%