All Projects → ThoughtWorksInc → RAII.scala

ThoughtWorksInc / RAII.scala

Licence: Apache-2.0 license
Resource Acquisition Is Initialization

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to RAII.scala

eventsourcing-go
Event Sourcing + CQRS using Golang Tutorial
Stars: ✭ 75 (+141.94%)
Mutual labels:  asynchronous
Disqord
An asynchronous Discord API wrapper for .NET.
Stars: ✭ 155 (+400%)
Mutual labels:  asynchronous
duckpy
A simple Python library for searching on DuckDuckGo.
Stars: ✭ 20 (-35.48%)
Mutual labels:  asynchronous
sluice
Asynchronous byte buffers and pipes for concurrent I/O programming.
Stars: ✭ 91 (+193.55%)
Mutual labels:  asynchronous
python-asynchronous-tasks
😎Asynchronous tasks in Python with Celery + RabbitMQ + Redis
Stars: ✭ 37 (+19.35%)
Mutual labels:  asynchronous
Polyel-Framework
⚡️ Voltis Core: A PHP framework based on Swoole from the ground up
Stars: ✭ 22 (-29.03%)
Mutual labels:  asynchronous
effects
Control.Effects
Stars: ✭ 19 (-38.71%)
Mutual labels:  monad-transformers
redux-auto
Automatically generate Redux stories and actions from your folder and file structure
Stars: ✭ 43 (+38.71%)
Mutual labels:  asynchronous
async retrial
Python package for retrial of asyncio based coroutines
Stars: ✭ 14 (-54.84%)
Mutual labels:  asynchronous
HULK-v3
Asynchronous HTTP Botnet for Distributed Denial of Service (DDoS)
Stars: ✭ 152 (+390.32%)
Mutual labels:  asynchronous
socketwrapper
Async/Sync networking library including UDP, TCP and TLS/TCP socket classes written in C++ 17.
Stars: ✭ 33 (+6.45%)
Mutual labels:  asynchronous
Pyaiodl
A python Asynchronous Downloader - Pyaiodl
Stars: ✭ 40 (+29.03%)
Mutual labels:  asynchronous
pg async.rs
Asynchronous, HA (master-master) PostgreSQL driver on top of libpq.
Stars: ✭ 40 (+29.03%)
Mutual labels:  asynchronous
PromisedFuture
A Swift based Future/Promises framework to help writing asynchronous code in an elegant way
Stars: ✭ 75 (+141.94%)
Mutual labels:  asynchronous
hunt
A refined core library for D programming language. The module has concurrency / collections / event / io / logging / text / serialization and more.
Stars: ✭ 86 (+177.42%)
Mutual labels:  asynchronous
monad-memo
Memoization monad transformer
Stars: ✭ 29 (-6.45%)
Mutual labels:  monad-transformers
relaks
Asynchrounous React component
Stars: ✭ 49 (+58.06%)
Mutual labels:  asynchronous
cephgeorep
An efficient unidirectional remote backup daemon for CephFS.
Stars: ✭ 27 (-12.9%)
Mutual labels:  asynchronous
advanced-web-developer-bootcamp-notes-examples-and-exercises
Examples and Exercises compiled. From the awesome Advanced Web Developer Bootcamp
Stars: ✭ 24 (-22.58%)
Mutual labels:  asynchronous
PSnmap
Svendsen Tech's PowerShell nmap-like port scanner accepting IPv4 CIDR notation
Stars: ✭ 37 (+19.35%)
Mutual labels:  asynchronous

RAII.scala

Build Status Latest version Scaladoc

RAII.scala is a collection of utilities aims to manage native resources in Scalaz.

Asynchronous Do

An asynchronous.Do is an asynchronous value, like scala.concurrent.Future or scalaz.concurrent.Task. The difference is that resources in Do can be either automatically acquired/released in scope, or managed by reference counting mechanism.

To use Do, add the following setting to your build.sbt,

libraryDependencies += "com.thoughtworks.raii" %% "asynchronous" % "latest.release"

and check the Scaladoc for usage.

ResourceT

Do consists of some monad transformers. The ability of resource management in Do is provided by the monad transformer ResourceT.

You can combine ResourceT with monads other than asynchronous.Do. For example, a resource manager in synchronous execution.

Covariant ResourceT

To use ResourceT for monadic data types whose kind is F[+A](e.g. scalaz.concurrent.Future or scalaz.Name), add the following setting to your build.sbt:

libraryDependencies += "com.thoughtworks.raii" %% "covariant" % "latest.release"

and check the Scaladoc for usage.

Invariant ResourceT

To use ResourceT for monadic data types whose kind is F[A](e.g. scalaz.effect.IO), add the following setting to your build.sbt:

libraryDependencies += "com.thoughtworks.raii" %% "invariant" % "latest.release"

and check the Scaladoc for usage.

Links

Related projects

  • Scalaz provides type classes and underlying data structures for this project.
  • ThoughtWorks Each provides monadic/each-like syntax which can be used with this project.
  • tryt.scala provides exception handling monad transformers for this project.
  • future.scala provides the asynchronous task types for this project.
  • DeepLearning.scala uses this project for asynchronous executed neural networks.

Credits

This library is inspired by Josh Suereth's scala-arm, in which I implemented the reference counting mechanism at first.

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