nox73 / celluloid-http Goto Github PK
View Code? Open in Web Editor NEWHttp client powered by celluloid-io
License: MIT License
Http client powered by celluloid-io
License: MIT License
This is a great library. It would be amazing to see an adapter based on this in Faraday, https://github.com/lostisland/faraday.
Perhaps the README forgot to tell me something, but I am getting all-the-way-down-to-C errors when trying to do a GET request to a URL.
Celluloid::Http.get "http://ollehost.dk" # is the shortest failing reproduce.
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin12.3.0]
-- Control frame information -----------------------------------------------
c:0017 p:0207 s:0072 b:0070 l:000069 d:000069 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43
c:0016 p:0015 s:0064 b:0064 l:000063 d:000063 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:26
c:0015 p:0092 s:0060 b:0060 l:000059 d:000059 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io.rb:42
c:0014 p:0020 s:0055 b:0055 l:000054 d:000054 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/stream.rb:42
c:0013 p:0031 s:0052 b:0052 l:000048 d:000051 BLOCK /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:87
c:0012 p:0459 s:0049 b:0049 l:000048 d:000048 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:84
c:0011 p:---- s:0040 b:0040 l:000039 d:000039 FINISH
c:0010 p:---- s:0038 b:0038 l:000037 d:000037 CFUNC :new
c:0009 p:0025 s:0033 b:0033 l:000032 d:000032 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6
c:0008 p:---- s:0028 b:0028 l:000027 d:000027 FINISH
c:0007 p:---- s:0026 b:0026 l:000025 d:000025 CFUNC :public_send
c:0006 p:0021 s:0020 b:0020 l:000019 d:000019 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11
c:0005 p:0039 s:0013 b:0013 l:000012 d:000012 METHOD /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:63
c:0004 p:0014 s:0007 b:0007 l:000260 d:000006 BLOCK /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/actor.rb:326
c:0003 p:0135 s:0005 b:0005 l:0004f8 d:000004 BLOCK /Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/tasks/task_fiber.rb:28
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
-- Ruby level backtrace information ----------------------------------------
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/tasks/task_fiber.rb:28:in `block in initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/actor.rb:326:in `block in handle_message'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:63:in `dispatch'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11:in `dispatch'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-0.13.0/lib/celluloid/calls.rb:11:in `public_send'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6:in `open'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-http-0.0.5/lib/celluloid-http/connection.rb:6:in `new'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:84:in `initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/tcp_socket.rb:87:in `rescue in initialize'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/stream.rb:42:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io.rb:42:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:26:in `wait_writable'
/Users/olle/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/celluloid-io-0.13.1/lib/celluloid/io/reactor.rb:43:in `wait'
At the moment the documentation is pretty simple and just mentions the GET part of Celluloid::HTTP. It would be great to mention also the handling with POST, especially with passing additional parameters like content types and user agents.
It is probably unnecessary to have a new Actor
for each TCPSocket
.
Being an I/O-bound problem, it might make sense to reuse a Connection
for many requests.
It is possible to have many method calls running concurrently on the same actor.
@jimweirich has a great talk showing this.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.