Uma crate Rust com ferramentas de concorrência: filas lock-free, deques com roubo de trabalho, canais, GC baseado em epochs, atomics e threads com escopo.
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
Pool de threads Worker para Node.js que executa tarefas intensivas em CPU fora do event loop principal, com filas, cancelamento e estatísticas de execução.
Um framework de atores para Rust que executa atores com troca de mensagens tipadas no runtime Tokio e oferece suporte à supervisão.
Uma coleção gratuita e de código aberto de exercícios e exemplos de Rust, organizada por capítulos, com código executável e editável e soluções.
Biblioteca C++ header-only para criar programas paralelos por tarefas usando grafos, com suporte a multithreading em CPU e GPUs CUDA.
Sincronização contínua de arquivos de código aberto que mantém pastas sincronizadas entre dois ou mais computadores sem um servidor central.