Code Monkey home page Code Monkey logo

aqua's Introduction

Aqua

release npm

Aqua is an open-source language for distributed workflow coordination in p2p networks. Aqua programs are executed on many peers, sequentially or in parallel, forming a single-use coordination network. Applications are turned into hostless workflows over distributed function calls, which enables various levels of decentralization: from handling by a limited set of servers to complete peer-to-peer architecture by connecting user devices directly. Aqua is the core of the Fluence protocol and a framework for internet or private cloud applications.

Usage

The easiest way to use Aqua is through Fluence CLI with aqua command.

Other ways of using Aqua are described in USAGE.md.

Documentation

Comprehensive documentation and usage examples as well as a number of videos can be found in Aqua Book. Aqua Playground demonstrates how to start writing Aqua and integrate it into a TypeScript application. Numerous videos are available at our YouTube channel.

Repository Structure

  • api - Aqua API for JS
  • aqua-run - Aqua API to run functions
  • backend - compilation backend interface
  • compiler - compiler as a pure function made from linker, semantics and backend
  • model - middle-end, internal representation of the code, optimizations and transformations
    • transform - optimizations and transformations, converting model to the result, ready to be rendered
    • test-kit - tests and test helpers for the model and transformations
  • linker - checks dependencies between modules, builds and combines an abstract dependencies tree
  • parser - parser, takes source text and produces a source AST
  • semantics - rules to convert source AST into the model
  • types - data types, arrows, stream types definitions and variance

Support

Please, file an issue if you find a bug. You can also contact us at Discord or Telegram. We will do our best to resolve the issue ASAP.

Contributing

Any interested person is welcome to contribute to the project. Please, make sure you read and follow some basic rules.

License

All software code is copyright (c) Fluence Labs, Inc. under the Apache-2.0 license.

aqua's People

Contributors

diemyst avatar alari avatar renovate[bot] avatar inversionspaces avatar nahsi avatar fluencebot avatar folex avatar coder11 avatar shamsartem avatar justprosh avatar boneyard93501 avatar akim-bow avatar gurinderu avatar github-actions[bot] avatar mikhail-1e20 avatar

Watchers

 avatar

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.