|
1 | 1 | # RubyDNS |
2 | 2 |
|
3 | | -RubyDNS is a simple programmatic DSL (domain specific language) for configuring and running a DNS server. RubyDNS provides a daemon that runs a DNS server which can process DNS requests depending on specific policy. Rule selection is based on pattern matching, and results can be hard-coded, computed, fetched from a remote DNS server, fetched from a local cache, etc. |
| 3 | +RubyDNS is a high-performance DNS server which can be easily integrated into other projects or used as a stand-alone daemon (via RExec). By default it uses rule-based pattern matching. Results can be hard-coded, computed, fetched from a remote DNS server or fetched from a local cache, depending on requirements. |
4 | 4 |
|
5 | | -RubyDNS provides a full daemon server using RExec. You can either use the built in daemon, customize it to your needs, or specify a full daemon implementation. |
| 5 | +In addition, RubyDNS includes a high-performance asynchronous DNS resolver built on top of EventMachine. This module can be used by itself in client applications without using the full RubyDNS server stack. |
6 | 6 |
|
7 | | -RubyDNS is not designed to be high-performance and uses a thread-per-request model. This is designed to make it as easy as possible to achieve concurrent performance. This is also due to the fact that many other APIs work best this way (unfortunately). |
| 7 | +For examples and documentation please see the main [project page][1]. |
| 8 | + |
| 9 | +[1]: http://www.oriontransfer.co.nz/gems/rubydns |
8 | 10 |
|
9 | 11 | [](http://travis-ci.org/ioquatix/rubydns) |
10 | 12 |
|
11 | | -## Basic Example |
| 13 | +## Installation |
| 14 | + |
| 15 | +Add this line to your application's Gemfile: |
| 16 | + |
| 17 | + gem 'rubydns' |
| 18 | + |
| 19 | +And then execute: |
| 20 | + |
| 21 | + $ bundle |
| 22 | + |
| 23 | +Or install it yourself as: |
| 24 | + |
| 25 | + $ gem install rubydns |
| 26 | + |
| 27 | +## Usage |
12 | 28 |
|
13 | 29 | This is copied from `test/examples/test-dns-2.rb`. It has been simplified slightly. |
14 | 30 |
|
@@ -40,10 +56,6 @@ After starting this server you can test it using dig: |
40 | 56 | dig @localhost dev.mydomain.org |
41 | 57 | dig @localhost google.com |
42 | 58 |
|
43 | | -For examples and documentation please see the main [project page][1]. |
44 | | - |
45 | | -[1]: http://www.oriontransfer.co.nz/gems/rubydns |
46 | | - |
47 | 59 | ## Compatibility |
48 | 60 |
|
49 | 61 | ### Migrating from RubyDNS 0.3.x to 0.4.x ### |
@@ -114,7 +126,15 @@ Once you call this, the transaction won't complete until you call either `transa |
114 | 126 |
|
115 | 127 | You can see a complete example in `test/test_slow_server.rb`. |
116 | 128 |
|
117 | | -## Future |
| 129 | +## Contributing |
| 130 | + |
| 131 | +1. Fork it |
| 132 | +2. Create your feature branch (`git checkout -b my-new-feature`) |
| 133 | +3. Commit your changes (`git commit -am 'Add some feature'`) |
| 134 | +4. Push to the branch (`git push origin my-new-feature`) |
| 135 | +5. Create new Pull Request |
| 136 | + |
| 137 | +### Desired Features |
118 | 138 |
|
119 | 139 | * Support for more features of DNS such as zone transfer. |
120 | 140 | * Support reverse records more easily. |
|
0 commit comments