Git Product home page Git Product logo

react's Introduction

React

React is a low-level library that provides signal/slot and functional reactive programming-like primitives. It can serve as the basis for a user interface toolkit, or any other library that has a model on which clients will listen and to which they will react.

Building (Java)

The library is built using SBT or Maven.

Invoke sbt publish-local to build and install the library to your local Ivy repository (i.e. ~/.ivy2/local).

Invoke mvn install to build and install the library to your local Maven repository (i.e. ~/.m2/repository).

Building (Objective-C)

The Objective-C library is distributed as an Xcode project with no external dependencies. Add react.xcodeproj to your project, add /path/to/react/src/main/objc to your user header search paths, and add #import "React.h" to your project's pre-compiled header.

Artifacts

To add a React dependency to a Maven project, add the following to your pom.xml:

<dependencies>
  <dependency>
    <groupId>com.threerings</groupId>
    <artifactId>react</artifactId>
    <version>1.5.1</version>
  </dependency>
</dependencies>

To add it to an Ivy, SBT, or other Maven-repository-using build configuration, simply remove the vast majority of the boilerplate above.

If you prefer to download a pre-built binary, that can be found here:

GWT

React is also usable from GWT. Add the jar to your project per the above instructions and add the following to your .gwt.xml file:

<inherits name="react"/>

Distribution

React is released under the New BSD License. The most recent version of the library is available at http://github.com/threerings/react

Contact

Questions, comments, and other communications should be directed to the Three Rings Libraries Google Group.

react's People

Contributors

aduros avatar deadmoose avatar groves avatar samskivert avatar tconkling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

react's Issues

StackOverflowError on old android devices

Code like

ValueView<SomeObj> view;
...
void crashReact() {
for (int i = 0; i < 500; i++) {
ValueView.Listener<SomeObj> omg = this::handleSomeObjChange;
view.connectNotify(omg);
}
}

will crash react compiled into android project, if was launched on android 4.4 for example:

03-12 19:58:05.371 3470-3470/my.pid E/AndroidRuntime: FATAL EXCEPTION: main
Process: my.pid, PID: 3470
java.lang.StackOverflowError
at react.Cons.insert(Cons.java:106)
at react.Cons.insert(Cons.java:106)
at react.Cons.insert(Cons.java:106)
at react.Cons.insert(Cons.java:106)
at react.Cons.insert(Cons.java:106)

This is due to recursion in Cons.insert(), Cons.remove() e t.c.

I'll place pull-request today

RFuture.sequence misnamed?

sequence, in the context of code that's waiting on a bunch of async operations, reads to me like those ops are going to be performed in sequence, which is of course not the case. What about something like join instead?

Priority confusion

I recently needed priority in the AS version of react (which is a direct port of Java react by Tim), and was very surprised to see that my int.MIN_VALUE priority connection executed before my priority 0 connection:

https://github.com/threerings/react/blob/master/src/main/java/react/Cons.java#L93

Since that behavior was simply copied from here, I'm wondering if that was intentional, or an oversight? (although Tim points out that oversight seems unlikely since there is a unit test specifying that behavior).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.