All Projects → tonyg → Syndicate

tonyg / Syndicate

Licence: lgpl-3.0
syn·di·cate: a language for interactive programs

Programming Languages

javascript
184084 projects - #8 most used programming language
racket
414 projects

Projects that are alternatives of or similar to Syndicate

pubsub-c
Pub/Sub library for C
Stars: ✭ 39 (-69.53%)
Mutual labels:  actor-model, pubsub
Sobjectizer
An implementation of Actor, Publish-Subscribe, and CSP models in one rather small C++ framework. With performance, quality, and stability proved by years in the production.
Stars: ✭ 172 (+34.38%)
Mutual labels:  actor-model, pubsub
Nymph
Data objects for JavaScript and PHP.
Stars: ✭ 97 (-24.22%)
Mutual labels:  pubsub
Jpost
Java and Android class communication library: New and improved Pub-Sub
Stars: ✭ 117 (-8.59%)
Mutual labels:  pubsub
Flare
Flare is a service that notify changes of HTTP endpoints
Stars: ✭ 110 (-14.06%)
Mutual labels:  pubsub
Facil.io
Your high performance web application C framework
Stars: ✭ 1,393 (+988.28%)
Mutual labels:  pubsub
Scrala
Unmaintained 🐳 ☕️ 🕷 Scala crawler(spider) framework, inspired by scrapy, created by @gaocegege
Stars: ✭ 113 (-11.72%)
Mutual labels:  actor-model
Tractor
structured concurrent, Python parallelism
Stars: ✭ 88 (-31.25%)
Mutual labels:  actor-model
Qpcpp
QP/C++ real-time embedded framework/RTOS for embedded systems based on active objects (actors) and hierarchical state machines
Stars: ✭ 124 (-3.12%)
Mutual labels:  actor-model
Samples
Community driven repository for Dapr samples
Stars: ✭ 104 (-18.75%)
Mutual labels:  pubsub
Frugal
Thrift improved
Stars: ✭ 113 (-11.72%)
Mutual labels:  pubsub
Autobahn Java
WebSocket & WAMP in Java for Android and Java 8
Stars: ✭ 1,467 (+1046.09%)
Mutual labels:  pubsub
Actix Lua
Safe Lua Scripting Environment for Actix
Stars: ✭ 106 (-17.19%)
Mutual labels:  actor-model
Wampy
Websocket RPC and Pub/Sub for Python applications and microservices
Stars: ✭ 115 (-10.16%)
Mutual labels:  pubsub
Pulsar Dotpulsar
The official .NET client library for Apache Pulsar
Stars: ✭ 101 (-21.09%)
Mutual labels:  pubsub
Orbit
Orbit - Virtual actor framework for building distributed systems
Stars: ✭ 1,585 (+1138.28%)
Mutual labels:  actor-model
Autobahn Js
WAMP in JavaScript for Browsers and NodeJS
Stars: ✭ 1,345 (+950.78%)
Mutual labels:  pubsub
Open62541
Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0
Stars: ✭ 1,643 (+1183.59%)
Mutual labels:  pubsub
Dapr Demos
Collection of personal Dapr demos (bindings, state, pub/sub, service-to-service invocation)
Stars: ✭ 109 (-14.84%)
Mutual labels:  pubsub
Event Gateway
React to any event with serverless functions across clouds
Stars: ✭ 1,604 (+1153.13%)
Mutual labels:  pubsub

Syndicate: A Networked, Concurrent, Functional Programming Language

Syndicate is an actor-based concurrent language able to express communication, enforce isolation, and manage resources. Network-inspired extensions to a functional core represent imperative actions as values, giving side-effects locality and enabling composition of communicating processes.

Collaborating actors are grouped within task-specific networks (a.k.a. virtual machines) to scope their interactions. Conversations between actors are multi-party (using a publish/subscribe medium), and actors can easily participate in many such conversations at once.

Syndicate makes presence notifications an integral part of pub/sub through its shared dataspaces, akin to tuplespaces. Each shared dataspace doubles as the pub/sub subscription table for its network. Actors react to state change notifications reporting changes in a dataspace, including new subscriptions created by peers and removal of subscriptions when a peer exits or crashes. State change notifications serve to communicate changes in demand for and supply of services, both within a single network and across nested layers of networks-within-networks. Programs can give up responsibility for maintaining shared state and for scoping group communications, letting their containing network take on those burdens.

Contents

This repository contains

  • a Racket implementation of Syndicate (plus auxiliary modules) in racket/syndicate/

  • an ECMAScript 5 implementation of Syndicate in js/

  • larger example programs:

    • examples/platformer, a 2D Platform game written in Syndicate for Racket.

    • examples/netstack, a TCP/IP stack written in Syndicate for Racket. It reads and writes raw Ethernet packets from the kernel using Linux- and OSX-specific APIs.

  • a sketch of a Haskell implementation of the core routing structures of Syndicate in hs/

Copyright and License

Copyright © Tony Garnock-Jones 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
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].