Giter VIP home page Giter VIP logo

kayak's People

Contributors

bvanderveen avatar dragan avatar loudej avatar mcunha avatar panesofglass avatar plarocque avatar tripleemcoder avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kayak's Issues

.Net Standard/Core support

It would be nice if this nuget package was ported to .Net Standard or .Net core. I do not think any breaking changes are needed for the transfer. I can assist if needed

The program has stopped connecting

It opens and then says "connecting..." followed quickly by "not connected" in the top right.

I've deleted the AppData folder and re-logged-in and it has the same behavior.

Plans for supporting Synchronous logic

Hi Ben,

I've had a scan through the code-base and it looks like Kayak's support is mostly async which I can understand from a perf/scalability POV. Just wanted to know if you intend to make palatable for sync logic, i.e. the Request has already been parsed and the sync code block is allowed to make blocking db/io calls without blocking the server.

Missing Source Files

I tried compiling your code and I get these errors:

Error CS2001: Source file '..\lib\httpmachine\src\HttpMachine\HttpParser.cs' could not be found
Error CS2001: Source file '..\lib\httpmachine\src\HttpMachine\IHttpParserDelegate.cs' could not be found

libevent

How to compile on Windows please ?

Can we have libEVent as a compiles binary for windows and for linus ?

More conveniently include HttpMachine

Submodules might be the way to go here. Build script automatically keeps it up to date based on a version/commit variable. Add the files to the Kayak solution or ILMerge the resulting binary.

Probably HttpMachine on NuGet is overkill.

HTTPS

Probably easy to bolt onto a SSL/TLS API.

Should GET assume no body?

As a practical matter I suspect that all GET requests should be treated as if Content-Length:0 were automatically implied. Watch what happens when you curl or wget from a kayak server. Kayak doesn't realize that the request is complete. cf the /echo case in the sample program.

Either that or the /echo sample should be modified not to read from the request's body if the request is a GET.

OTOH, http://tech.groups.yahoo.com/group/rest-discuss/message/9962

SSL/TLS

OpenSSL looks like a steaming pile. What other options have we?

Explicitly unbind listening server in sample code

Seems some Unixes (OS X at least) don't automatically reclaim ports a process was listening on when that process dies but doesn't unbind the listening socket. Causes "The address was already in use" errors on subsequent runs.

HTTP 1.1 client implementation

Supports pipelining requests and reusing open connections.

ep.GetHttpConnection(c => {
    connection.OnRequest(head, body, responseDelegate);
});

This makes me think:

When writes are made during a single iteration of the runloop, the socket implementation should combine them into a single packet. In other words, writes are deferred until the end of the loop and always re-buffered or use scatter/gather APIs.

This is so that user can control pipelining of requests. Very nice also in the outgoing message queue because headers and synchronous bodies are condensed into a single packet.

Integrate libuv

  • filesystem access?
  • FS events?
  • timers?
  • signal events?
  • UDP/datagram support?
  • DNS?
  • sendfile?

Response fails to complete intermittently

Hi Benjamin,

firstly, thanks for your work on Kayak - it is looking really promising.

I think I may have come across a bug in Kayak 0.6.2. A application demonstrating the issue can be found here: https://github.com/kjohnphillip/KayakIssue.

It appears from some early investigation, that KayakServer.AcceptNext() is not behaving consistently across requests. The log file (https://github.com/kjohnphillip/KayakIssue/blob/master/log.txt) shows the output from Kayak when making repeated requests to http://127.0.0.1.

You will see from the log, that on startup 2 requests are completed successfully, the 3rd then fails and then every other request succeeds. Only request 1 is followed immediately by another successful request and the log for request 1 is different to the log for every other successful request.

My environment is mono 2.10.2 on Ubuntu 10.10 (64bit).

Regards,

Kevin

A working example?

I've been trying to get kayak working but I must be misunderstanding something. My assumption is that once I launch a simple server I could use a web browser at localhost to see the results, but this isn't working. What am I missing?

rake doesn't follow redirects on nuget

When I run rake it tries to download NUnit package; the response is a redirect but Net::HTTP doesn't follow those. I had to hack the Rakefile not to delete old files, and download and extract NUnit manually.

On my Debian system I have NUnit installed as a separate package anyway...

Kayak.Http.DataSubject Thread Safety?

A quick inspection of Kayak.Http.DataSubject source seems to suggest it has threading issues. For instance, Connect and OnError, which are called by different threads, are written as if channel and error properties were locked together, but they aren't.

Am I missing something here? And if not, is all the Kayak code written in the same way? If so, a wholesale thread safety audit might be in order.

Permission denied while building from rake

When attempting to build from rake as described on the README.md I get the following error :

Cloning into lib/httpmachine...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Clone of '[email protected]:bvanderveen/httpmachine.git' into submodule path 'lib/httpmachine' failed

It also failed when I tried replacing the url in .gitmodules by https://github.com/bvanderveen/httpmachine.git.

EDIT : I forgot to edit .config in .git to change the submodule url there to https://github.com/kayak/kayak.git
That made it give a different error message :
fatal: reference is not a tree: 5747f5e34db18a5461581728d3618b5c3599a4d3
Unable to checkout '5747f5e34db18a5461581728d3618b5c3599a4d3' in submodule path 'lib/httpmachine'

For some reason I still have issues with the rake file, however I was able to init and update the submodule though git bash

Support for chunked transfer encoding

Automatically encode when Transfer-Encoding: chunked exists in outgoing message, automatically decodes when Transfer-Encoding: chunked exists in an incoming message (should be implemented in the parser).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.