Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Celluloid::IO-powered DNS server

branch: master


Gem Version Build Status Dependency Status Code Climate Coverage Status

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.