Coder Social home page Coder Social logo

mailev / waveguide Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rzeigler/waveguide

0.0 0.0 0.0 2.08 MB

An effect/IO datatype in typescript

Home Page: https://rzeigler.github.io/waveguide

License: Apache License 2.0

TypeScript 99.51% JavaScript 0.41% Shell 0.08%

waveguide's Introduction

waveguide

npm version npm version next CircleCI Join the chat at https://gitter.im/waveguide-core/community

waveguide has been superseded by mikearnaldi/matechs-effect. This package is a based off a fork of waveguide, is used in production, and contains useful additional modules like a request client.

Waveguide is a set of modules provided data types for describing effects in Typescript in the fp-ts ecosystem inspired by scala projects such as ZIO and cats-effect. Waveguide allows you to communicate with the real world in a referentially transparent manner. For a quick overview of waveguide in action see the tutorial A companion streaming library is being incubated in waveguide-streams and will eventually become part of the core

IO is:

  • Lazy. Work is not done until explicitly asked for and interruption can be used to stop work that is no longer needed.
  • Efficient. Asynchronous boundaries only occur where necessary. The run loop will execute as much work as it can before suspending.
  • Interoperable. There are a functions to adapt Promises as well as the fp-ts effect types.
  • Resource safe. Exposes a number of primitives for working with resources and guaranteeing cleanup.
  • Concurrent. Exposes a logical fiber model with support for joins and interrupts. Write your code as a sequence of effects and communicate with other fibers rather than trying to juggle the state of all concurrent processes at once.

For more information see the docs or the tutorial.

If you have questions don't hesitate to ask them in the gitter.

waveguide's People

Contributors

rzeigler avatar mirzazulfan avatar gitter-badger avatar dependabot[bot] 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.