All Projects → CONNECT-platform → Connective

CONNECT-platform / Connective

Licence: mit
agent-based reactive programming library for typescript

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Connective

Cyclow
A reactive frontend framework for JavaScript
Stars: ✭ 105 (+7.14%)
Mutual labels:  reactive, data-flow, framework
Xreact
reactive x react = xreact
Stars: ✭ 565 (+476.53%)
Mutual labels:  reactive, rxjs, data-flow
Frint
Modular JavaScript framework for building scalable and reactive applications
Stars: ✭ 608 (+520.41%)
Mutual labels:  reactive, rxjs, framework
Marble
Marble.js - functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
Stars: ✭ 1,947 (+1886.73%)
Mutual labels:  reactive, rxjs, framework
Ngx Restangular
Restangular for Angular 2 and higher versions
Stars: ✭ 787 (+703.06%)
Mutual labels:  reactive, rxjs
Kvision
Object oriented web framework for Kotlin/JS
Stars: ✭ 658 (+571.43%)
Mutual labels:  reactive, framework
Platform
Reactive libraries for Angular
Stars: ✭ 7,020 (+7063.27%)
Mutual labels:  reactive, rxjs
Watermelondb
🍉 Reactive & asynchronous database for powerful React and React Native apps ⚡️
Stars: ✭ 7,996 (+8059.18%)
Mutual labels:  reactive, rxjs
Spring Data R2dbc
Provide support to increase developer productivity in Java when using Reactive Relational Database Connectivity. Uses familiar Spring concepts such as a DatabaseClient for core API usage and lightweight repository style data access.
Stars: ✭ 534 (+444.9%)
Mutual labels:  reactive, framework
Dugong
Minimal State Store Manager for React Apps using RxJS
Stars: ✭ 10 (-89.8%)
Mutual labels:  reactive, rxjs
Inferno Most Fp Demo
A demo for the ReactJS Tampa Bay meetup showing how to build a React+Redux-like architecture from scratch using Inferno, Most.js, reactive programmning, and various functional programming tools & techniques
Stars: ✭ 45 (-54.08%)
Mutual labels:  reactive, rxjs
Servicetalk
A networking framework that evolves with your application
Stars: ✭ 656 (+569.39%)
Mutual labels:  reactive, framework
Rocket.jl
Functional reactive programming extensions library for Julia
Stars: ✭ 69 (-29.59%)
Mutual labels:  reactive, framework
Push State
Turn static web sites into dynamic web apps.
Stars: ✭ 16 (-83.67%)
Mutual labels:  reactive, rxjs
Danf
Danf is a Node.js full-stack isomorphic OOP framework allowing to code the same way on both client and server sides. It helps you to make deep architectures and handle asynchronous flows in order to help in producing scalable, maintainable, testable and performant applications.
Stars: ✭ 58 (-40.82%)
Mutual labels:  framework, architecture
Devis
A microservices framework for Node.js
Stars: ✭ 72 (-26.53%)
Mutual labels:  framework, architecture
Cdc Kafka Hadoop
MySQL to NoSQL real time dataflow
Stars: ✭ 13 (-86.73%)
Mutual labels:  data-flow, architecture
Rx Connect
Glue your state and pure React components with RxJS
Stars: ✭ 86 (-12.24%)
Mutual labels:  reactive, rxjs
Peasy.net
A business logic micro-framework for .NET and .NET Core
Stars: ✭ 406 (+314.29%)
Mutual labels:  framework, architecture
Bunny
BunnyJS - Lightweight native (vanilla) JavaScript (JS) and ECMAScript 6 (ES6) browser library, package of small stand-alone components without dependencies: FormData, upload, image preview, HTML5 validation, Autocomplete, Dropdown, Calendar, Datepicker, Ajax, Datatable, Pagination, URL, Template engine, Element positioning, smooth scrolling, routing, inversion of control and more. Simple syntax and architecture. Next generation jQuery and front-end framework. Documentation and examples available.
Stars: ✭ 473 (+382.65%)
Mutual labels:  framework, architecture

npm i @connectv/core

Minzipped size Build Status CodeFactor Chat on Gitter

CONNECTIVE facilitates large-scale reactive programming in Type(Java)Script. It enables declarative creation of large and complex data/event flows and supports re-use of flows.

Example (Stackblitz):

import { wrap, map, filter } from '@connectv/core';
import { fromEvent } from 'rxjs';

let a = document.getElementById('a') as HTMLInputElement;
let p = document.getElementById('p');

//
// Will say hello to everyone but 'Donald'.
// For obvious reasons.
//

wrap(fromEvent(a, 'input'))           // --> wrap the `Observable` in a `Pin`
.to(map(() => a.value))               // --> map the event to value of the input
.to(filter(name => name != 'Donald')) // --> filter 'Donald' out
.to(map(name => 'hellow ' + name))    // --> add 'hellow' to the name
.subscribe(msg => p.innerHTML = msg); // --> write it to the <p> element

CONNECTIVE is a thin layer on top of RxJS, so it provides all the toolset of rxjs by proxy. However, while RxJS's API is better suited for short-lived and small flows, CONNECTIVE adds tools better suiting long-living and large/complex flows.

Example (Stackblitz):

import './style.css';

import { wrap, gate, control, map, pin, pipe, group, spread, sink } from '@connectv/core';
import { fromEvent } from 'rxjs';
import { delay, debounceTime } from 'rxjs/operators';

let a = document.getElementById('a') as HTMLInputElement;
let p = document.getElementById('p');

let g = gate();                       // --> gate helps us control the flow of the words

group(control(), g.output)            // --> open the gate every time it outputs something (also once initially)
  .to(pin())                          // --> this relays either gate output or initial `control()` emit
  .to(pipe(delay(500)))               // --> but wait 500ms before opening the gate
  .to(g.control);                     // --> controls when the gate opens up.

wrap(fromEvent(a, 'input'))           // --> wrap the `Observable` in a `Pin`
  .to(pipe(debounceTime(2000)))       // --> debounce for 2 seconds so people are done typing
  .to(map(() => a.value.split(' ')))  // --> map the event to value of input, splitted
  .to(spread())                       // --> spread the array to multiple emissions
  .to(g)                              // --> pass those emissions to the gate
  .to(sink(() => p.classList.add('faded')))    // --> fade the <p> when something comes out of the gate.
  .to(pipe(delay(100)))                        // --> wait 100 ms
  .to(sink(v => p.innerHTML = v))              // --> write the new word
  .to(sink(() => p.classList.remove('faded'))) // --> show the <p> again
  .subscribe();                                // --> bind everything.

How To Install

Using NPM:

npm i @connectv/core

Using a CDN:

<script src="https://unpkg.com/rxjs/bundles/rxjs.umd.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>

<script src="https://unpkg.com/@connectv/core/dist/bundles/connective.es5.min.js"></script>

How To Use

Check out the documentation.

Why Use This?

CONNECTIVE provides a different API on top of RxJS that is more suitable for larger and more complex projects. You can read more on this here.


How To Contribute

Check out the contribution guide. Also check out the code of conduct.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].