Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Celluloid::IO-powered DNS server
branch: master
Failed to load latest commit information.
lib/celluloid Fix calling the callback block
spec Gemnasium, Code Climate, Coveralls
.coveralls.yml Gemnasium, Code Climate, Coveralls
.gitignore Initial commit
.rspec Initial commit
.travis.yml Bump version to 0.0.1
Gemfile Gemnasium, Code Climate, Coveralls
LICENSE.txt New logo and README fixups Celluloid::DNS is defunct
Rakefile Initial commit
celluloid-dns.gemspec Initial commit
logo.png Logo redux (again)


Gem Version Build Status Dependency Status Code Climate Coverage Status

Celluloid::DNS is defunct. Please use RubyDNS instead

Celluloid::DNS is a programmable Celluloid "cell" for answering DNS requests. It's implemented using Celluloid::IO and is great for programatic DNS servers which dynamically generate DNS responses, particularly within Celluloid-based programs.

A nonblocking DNS client is already built into Celluloid::IO itself. Celluloid::DNS is just for servers.


Add this line to your application's Gemfile:

gem 'celluloid-dns'

And then execute:

$ bundle

Or install it yourself as:

$ gem install celluloid-dns

Inside of your Ruby project, use:

require 'celluloid/dns' pull Celluloid::DNS in as a dependency.


Start a DNS server that always resolves to

require "celluloid/dns""", 1234) do |request|
  request.answer { |q| [q, ""] }


Query the server:

$ dig @localhost -p 1234

Contributing to Celluloid::DNS

  • Fork this repository on github
  • Make your changes and send me a pull request
  • If I like them I'll merge them
  • If I've accepted a patch, feel free to ask for commit access


Copyright (c) 2012 Tony Arcieri. Distributed under the MIT License. See LICENSE.txt for further details.

Something went wrong with that request. Please try again.