Repolode
ruby-concurrency

ruby-concurrency/concurrent-ruby

Gem Ruby com primitivas de concorrência, como futures, promises, pools de threads, agents, atoms, coleções thread-safe e classes de sincronização.

Estrelas
5,837
Forks
423
Issues abertas
53
Último commit
há 8 dias

O que é?

Concurrent Ruby é uma gem que oferece um amplo conjunto de abstrações de concorrência para aplicações Ruby. Ela inclui ferramentas assíncronas, como Promises (uma estrutura unificada para futures e promises), ScheduledTask e TimerTask, além de pools de threads inspirados em Java e outros executors.

A biblioteca também oferece objetos de valor e coleções thread-safe, incluindo subclasses thread-safe de Array, Hash e Set, um Map de alta concorrência, structs imutáveis e mutáveis e tipos atômicos, como AtomicReference e AtomicFixnum. Para estado compartilhado, ela oferece Agent e Atom no estilo Clojure, além de TVar para memória transacional de software e classes de sincronização, como CountDownLatch, Semaphore e ReadWriteLock.

A gem foi projetada para não depender de gems externas e funciona em MRI, JRuby e TruffleRuby. Extensões C opcionais para MRI estão disponíveis em uma gem separada, concurrent-ruby-ext, e recursos experimentais, como Actor e Channel, estão na gem complementar concurrent-ruby-edge.

Recursos principais

  • 01Framework de Promises que combina futures, promises e avaliação adiada.
  • 02Pools de threads e outros executors inspirados no pacote de concorrência do Java.
  • 03Coleções Array, Hash, Set e Map thread-safe.
  • 04Referências, contadores e valores booleanos atômicos para atualizações sem locks.
  • 05Agent e Atom para gerenciar estado compartilhado, além de TVar para memória transacional.
  • 06Primitivas de sincronização, incluindo CountDownLatch, Semaphore e ReadWriteLock.

Casos de uso

  • Executar tarefas em segundo plano ou operações de I/O paralelas em um serviço Ruby sem adicionar dependências externas.
  • Coordenar várias threads com latches, barreiras ou semáforos.
  • Agendar tarefas periódicas ou adiadas em um processo Ruby.
  • Compartilhar estado mutável com segurança entre threads usando atoms ou coleções thread-safe.

Antes de usar

  • Não foi possível detectar a licença nos metadados. Confira o arquivo de licença do repositório antes de usar.
  • Os recursos da gem complementar concurrent-ruby-edge podem mudar com frequência e deixar de ser compatíveis com versões anteriores.

Tópicos

Perguntas frequentes

O que é concurrent-ruby?
Gem Ruby com primitivas de concorrência, como futures, promises, pools de threads, agents, atoms, coleções thread-safe e classes de sincronização. Concurrent Ruby é uma gem que oferece um amplo conjunto de abstrações de concorrência para aplicações Ruby. Ela inclui ferramentas assíncronas, como Promises (uma estrutura unificada para futures e promises), ScheduledTask e TimerTask, além de pools de threads inspirados em Java e outros executors.
concurrent-ruby é gratuito? Qual é a licença?
concurrent-ruby é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
concurrent-ruby ainda é mantido?
Manutenção ativa. O último commit de concurrent-ruby foi em 16 de out. de 2026.
Para que posso usar concurrent-ruby?
Executar tarefas em segundo plano ou operações de I/O paralelas em um serviço Ruby sem adicionar dependências externas. Coordenar várias threads com latches, barreiras ou semáforos. Agendar tarefas periódicas ou adiadas em um processo Ruby. Compartilhar estado mutável com segurança entre threads usando atoms ou coleções thread-safe.
Onde consigo concurrent-ruby?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/ruby-concurrency/concurrent-ruby

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados