deanrad / antares-ts

Antares is an Architecture for making real-time applications with confidence.
https://deanius.github.io/antares/
MIT License
2 stars 0 forks source link
async functional-programming observable promise react reactive-programming redux rxjs rxjs6

Antares

Antares is a way to construct real-time web apps - web apps that have essentially banished the notion of stale data from their repertoire, and are configured to share and respond with data at the speed modern users expect.

🔊

ES 2015 npm version <22 kb Travis Appveyor for Windows Greenkeeper badge

Dev Dependencies npm type definitions styled with prettier try on runkit twitter link

What Exactly Is Antares?

An Architecture for assigning Consequences to Events.

What Benefits Can I Get By Using It?

What kinds of apps can I build with it?

Antares, with RxJS, manages consequences, which any app has, so it's not limited to client or server, or even Web Apps.

There are many demo apps included in this project that show what you can build.

OK, but where should I start?

The flagship demo which can be utilized as a course to learn how to fit an Antares Agent with an existing React/Redux/Express app, is located here: The Hotel California Antares Sample App.

It's becoming part of a workshop - if you're interested in learning more, or updating me on your progress, tweet it!

Testing? Yes, please!

Antares is highly tested. And since testing async is hard, some integration level tests run a bunch of complex stuff (our demos), and simply assert on the console output. The slightest change in behavior can thus be visible in the output of the demo as a large change. This, with Jest Snapshot testing makes asserting on our output a piece of cake.

For unit tests, check out what the unit test suite looks like on a recent CI build. (Thanks to Dan Abromov for illustrating in his 2015 react-dnd/dnd-core project what a nicely formatted test suite output can be)

Antares has unit tests, and demos whose output is tested in CI on MacOS, Linux, and Windows. Because concurrency must be interacted with to truly be understood, many of the demos support you interacting with them in a console, or at least changing their parameters in config (demos/config.js)

See the output of a run of all demos on Travis CI, and if you run them locally, make sure you have sound turned on!

Here are some more ways you can run demos (use cross-env on windows)

> DEMO=muteFruit INTERACTIVE=1 node demos/index
> DEMO=muteFruit inner=100 outer=100 node demos/index
> cross-env DEMO=muteFruit inner=100 node demos/index

Show your love!

Gratitude, Props, Thanks To


Antares