ractor_dns 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: abb60858b1f6214730ce4d5ac169dc4b03151b94e610575df0b39469f3d81ff7
4
- data.tar.gz: f7cad7e86501e3e194428284ecfa26f86033f3e63654a4cc4782b604d837d564
3
+ metadata.gz: 1f04318c7ff68a828b56c907c840838eaf2db6bc713af5954d200a490a1fba78
4
+ data.tar.gz: 3d63843ff098ab3de850f6a382b8b751045587c1e73001e939ccdb8abac09fdf
5
5
  SHA512:
6
- metadata.gz: b79a3b762b5996b967787f5fdfc1164d5f08cd110c5fc96418dcfd1500d3280d64501f2cea21c2a1c00e3191b351ba9834abe046e6a43459d5b4501379119dac
7
- data.tar.gz: a627088137a11008814c51b95e665798937ca2aac1182d5f7f79ca5c85f2f5040075eb4203a54dddb65f55a4d73171b50fc5016cc2a0d01c5a8ff52975d88cf5
6
+ metadata.gz: 5890c21087d4bfb40e99f6aad33b8e86bb3074ca2db3fd9eec968e7e6930b1dd60d96bad037a9c96a95a1faeb42e8e76b95f7231613bb3783254485c5d2241fc
7
+ data.tar.gz: 9c0536c6a6910ac3ad69b56bda6740cbf372e186abf86b8164d832aa9314443f1afc0f9c18f196ae9712bd05a42983e58c962534fdd31aa85592fc13e8e7849d
data/README.md CHANGED
@@ -6,15 +6,51 @@ RactorDNS is a work-in-progress concurrent DNS server built with Ruby 3.0 Ractor
6
6
 
7
7
  Install the gem and add to the application's Gemfile by executing:
8
8
 
9
- bundle add ractor_dns
9
+ ```bash
10
+ bundle add ractor_dns
11
+ ```
10
12
 
11
13
  If bundler is not being used to manage dependencies, install the gem by executing:
12
14
 
13
- gem install ractor_dns
15
+ ```bash
16
+ gem install ractor_dns
17
+ ```
14
18
 
15
19
  ## Usage
16
20
 
17
- TODO: Write usage instructions here
21
+ ### Creating a server
22
+
23
+ ```ruby
24
+ server = RactorDNS::Server.new(
25
+ port: 8053,
26
+ authority: ["ns.ractordns.local", 300, RRs::IN::A.new("1.1.1.1")],
27
+ cpu_count: 12,
28
+ zones: {
29
+ "google.com" => [
30
+ {
31
+ name: "google.com",
32
+ ttl: 300,
33
+ rr: RRs::IN::A.new("8.8.8.8")
34
+ },
35
+ {
36
+ name: "test.google.com",
37
+ ttl: 300,
38
+ rr: RRs::IN::A.new("1.1.1.1")
39
+ }
40
+ ]
41
+ }
42
+ )
43
+ ```
44
+
45
+ ### Updating zones
46
+
47
+ ```ruby
48
+ transaction = RactorDNS::Transaction.new do |zones|
49
+ zones["google.com"][0][:rr] = RRs::IN::A.new("2.2.2.2")
50
+ end
51
+
52
+ server.zones.transact transaction
53
+ ```
18
54
 
19
55
  ## Development
20
56
 
@@ -1,6 +1,6 @@
1
1
  class RactorDNS::ActiveZone
2
2
  attr_accessor :server
3
- def initialize(name: "ns.ractordns.local", ttl: 300, ip: "0.0.0.0", server: nil, port: 53, cpu_count: 8, zones:)
3
+ def initialize(name: "ns.ractordns.local", ttl: 300, ip: "0.0.0.0", server: nil, port: 8053, cpu_count: 8, zones:)
4
4
  @server = server.presence || RactorDNS::Server.new(
5
5
  port:,
6
6
  authority: [name, ttl, RRs::IN::A.new(ip)],
@@ -2,10 +2,10 @@ module RactorDNS
2
2
  class Server
3
3
  attr_reader :authority, :ractor, :zones, :cpu_count, :port
4
4
 
5
- def initialize(authority:, cpu_count:, zones:, port: 53)
5
+ def initialize(authority:, cpu_count:, zones:, port: 8053)
6
6
  @authority = authority
7
7
  @cpu_count = cpu_count
8
- @zones = zones
8
+ @zones = ZoneCollection.new(zones)
9
9
  @port = port
10
10
  end
11
11
 
@@ -1,3 +1,3 @@
1
1
  module RactorDNS
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ractor_dns
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - reesericci
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-19 00:00:00.000000000 Z
11
+ date: 2024-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport