Sha256: 3bc00c36b27a1ad6dad1ad814adb539874aabd883c3e555ba11b61d997d1c837

Contents?: true

Size: 1.58 KB

Versions: 1

Compression:

Stored size: 1.58 KB

Contents

## 0.25 Merge Coprocess functionality into Fiber

- Merge `Coprocess` functionality into `Fiber`
  - Get rid of the duality Coprocess - Fiber
  - exception handling
  - interrupting (`MoveOn`/`Cancel`)
  - message passing (`receive`/`send`)
  - Clear separation between scheduling code and event handling code
  - Check performance difference using `http_server.rb`. We should expect a
    modest increase in throughput, as well as significantly less memory usage.
- Handle calls to `#sleep` without duration (should just `#suspend`)

## 0.26 Move Other interface code into separate gem

- Pull out redis/postgres code, put into new `polyphony-contrib` gem

## 0.27 Working Sinatra application

- app with database access (postgresql)
- benchmarks!

## 0.28 Support for multi-threading

- Separate event loop for each thread

## 0.29 Testing && Docs

## 0.30 Integration

- Sidekick
- Rails?

# DNS

## DNS client

```ruby
ip_address = DNS.lookup('google.com', 'A')
```

Prior art:

- https://github.com/alexdalitz/dnsruby
- https://github.com/eventmachine/eventmachine/blob/master/lib/em/resolver.rb
- https://github.com/gmodarelli/em-resolv-replace/blob/master/lib/em-dns-resolver.rb
- https://github.com/socketry/async-dns

### DNS server

```ruby
Server = import('../../lib/polyphony/dns/server')

server = Server.new do |transaction|
  puts "got query from #{transaction.info[:client_ip_address]}"
  transaction.questions.each do |q|
    respond(transaction, q[:domain], q[:resource_class])
  end
end

server.listen(port: 5300)
puts "listening on port 5300"
```

Prior art:

- https://github.com/socketry/async-dns

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
polyphony-0.25 TODO.md