All Projects → Effect-TS → Core

Effect-TS / Core

Licence: mit
A Fully-fledged functional effect system for typescript with a rich standard library

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Core

Cosa
An Object-Oriented Platform for Arduino/AVR
Stars: ✭ 306 (-5.85%)
Mutual labels:  framework
Embark
Framework for serverless Decentralized Applications using Ethereum, IPFS and other platforms
Stars: ✭ 3,478 (+970.15%)
Mutual labels:  framework
Populus
The Ethereum development framework with the most cute animal pictures
Stars: ✭ 315 (-3.08%)
Mutual labels:  framework
1991
A server-side web framework written in Forth.
Stars: ✭ 309 (-4.92%)
Mutual labels:  framework
Redhawk
A submodule repository for distributing REDHAWK artifacts and the latest REDHAWK source code. Use 'git clone --recurse-submodules [email protected]:RedhawkSDR/redhawk.git' to also clone all submodules.
Stars: ✭ 310 (-4.62%)
Mutual labels:  framework
Richkware
Framework for building Windows malware, written in C++
Stars: ✭ 315 (-3.08%)
Mutual labels:  framework
Django Permission
[Not maintained] An enhanced permission system which support object permission in Django
Stars: ✭ 305 (-6.15%)
Mutual labels:  framework
Easyrealm
EasyRealm is a micro-framework that helps you use Realm.
Stars: ✭ 320 (-1.54%)
Mutual labels:  framework
Fritz2
Easily build reactive web-apps in Kotlin based on flows and coroutines.
Stars: ✭ 308 (-5.23%)
Mutual labels:  framework
Vuefront
VueFront Core. Turn your old-fashioned CMS website in to a SPA & PWA in 5 minutes
Stars: ✭ 316 (-2.77%)
Mutual labels:  framework
Deepkit Framework
A new full-featured and high-performance web framework for sophisticated Typescript projects like complex admin interfaces, websites, games, desktop and mobile apps.
Stars: ✭ 307 (-5.54%)
Mutual labels:  framework
Phonk
PHONK is a self-contained creative scripting toolbox for new and old Android Devices
Stars: ✭ 310 (-4.62%)
Mutual labels:  framework
Spring Data Cassandra
Provides support to increase developer productivity in Java when using Apache Cassandra. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 315 (-3.08%)
Mutual labels:  framework
Merry
🌊🌊⛵️🌊🌊 - cute streaming API framework
Stars: ✭ 308 (-5.23%)
Mutual labels:  framework
Lazyphp4
LazyPHP4 , an API first framework for php developer
Stars: ✭ 316 (-2.77%)
Mutual labels:  framework
Graffiti
Minimalistic GraphQL framework
Stars: ✭ 306 (-5.85%)
Mutual labels:  framework
Prelude Ts
Functional programming, immutable collections and FP constructs for typescript and javascript
Stars: ✭ 315 (-3.08%)
Mutual labels:  fp
Direflow
🧩 Use the best of two worlds. Create fast, performant, native Web Components using React.
Stars: ✭ 322 (-0.92%)
Mutual labels:  framework
Monio
Async-capable IO monad for JS
Stars: ✭ 311 (-4.31%)
Mutual labels:  fp
Application
一个设计精巧, 协议实现完备的, 基于 mirai-api-http 的即时聊天软件自动化框架.
Stars: ✭ 307 (-5.54%)
Mutual labels:  framework

Welcome to Effect-TS

Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.

The main driver of inspiration and the source of most of the ideas politely borrowed by this library is the core ZIO and its ecosystem of libraries, in particular ZIO-Prelude from which we take the naming and design of a highly innovative typeclass system.

Within the TypeScript ecosystem, this library takes inspiration from fp-ts, io-ts, morphic-ts, waveguide, qio and please forgive us if we are forgetting some.

Before anything we would like to say THANK YOU to all the contributors and authors of all the libraries we took something from, this work would have not been possible without you!

Just like ZIO in scala, which was taken as source-code reference for the typescript port, @effect-ts/core/Effect is powered by highly-scalable, non-blocking fibers that never waste or leak resources, Effect lets you build scalable, resilient, and reactive applications that meet the needs of your business.

  • High-performance. Build scalable applications with greater performance compared to Promise.
  • Type-safe. Use the full power of the TypeScript compiler to catch bugs at compile time.
  • Concurrent. Easily build concurrent apps without deadlocks, race conditions, or complexity.
  • Asynchronous. Write sequential code that looks the same whether it's asynchronous or synchronous.
  • Resource-safe. Build apps that never leak resources, even when they fail.
  • Testable. Inject test services into your app for fast, deterministic, and type-safe testing.
  • Resilient. Build apps that never lose errors, and which respond to failure locally and flexibly.
  • Functional. Rapidly compose solutions to complex problems from simple building blocks.
  • Stack Safe. Forget ever seeing again Maximum call stack size exceeded and profit.

Within the ecosystem of packages you will find:

  • @effect-ts/core The main entry point of the library, contains the effect system, the typeclasses inspired by zio-prelude and a set of commonly used modules like Sync, Array, Option, and many more.

  • @effect-ts/jest The main entry point for testing, provides an integration to jest of a test runtime based on managed effect layers that support Effect as first class citizen.

  • @effect-ts/monocle Based on a fork of monocle-ts experimental modules this library offers low boilerplate optics for your needs.

  • @effect-ts/morphic Based on a fork of morphic-ts this library provides derivation of common typeclasses like Decoder, Encoder, Guard in a highly configurable manner and utilities around ADT in general data-modelling needs.

  • @effect-ts/tracing-plugin This typescript compiler plugin, to be used with ttypescript, can be configured to:

    • add compile time traces to your application code
    • reduce the calls to pipe
    • reduce the calls to flow
    • reduce the calls to identity
    • optimize data-last pipeable functions to data-first

Install

We recommend the usage of yarn and if you have multiple packages the usage of yarn workspaces that handles by default hoisting of dependencies:

yarn add @effect-ts/core

Get in touch

Join us using discord at: https://discord.gg/hdt7t7jpvn

Articles

If you like to know more check out our, incomplete, series of articles:

Documentation

This is not an excuse, we will write docs when the active development slows down but:

Functional libraries tend to have almost no documentation and the reason is that the best documentation for a function is its own definition assuming the name is meaningful and the types are clear.

For the reason above, when we will begin documenting it, it will be along the lines of a guide in order to introduce concepts used in the library rather than just an "online database of function definitions"

Examples

Maintainers

This library is actively maintained by Matechs-Garage the R&D leg of the Matechs group that sponsor its development.

Contributors

Many thanks to all contributors of this amazing project, many of you have contributed from functionality up to bug reporting and fixing this library would have been nowhere near without your work. If you are interested to join us then reach out (regardless of your experience)!

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].