Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Celluloid::IO-powered DNS server

branch: master
README.md

Celluloid::DNS

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.

Installation

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'

...to pull Celluloid::DNS in as a dependency.

Usage

Start a DNS server that always resolves to 127.0.0.1:

require "celluloid/dns"

Celluloid::DNS::Server.new("127.0.0.1", 1234) do |request|
  request.answer request.questions.map { |q| [q, "127.0.0.1"] }
end

sleep

Query the server:

$ dig @localhost -p 1234 anything.com

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

License

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.