[erlang-questions] Webmachine Binary Request Strings
Loïc Hoguin
essen@REDACTED
Mon Dec 19 23:02:46 CET 2011
Working on this:
https://github.com/extend/bullet
Needs more work on the JS side (perhaps taking from socket.io-like
projects later on) and documentation, but it works pretty well and is in
production already.
It's a bit different as it builds something upon websocket's design,
it's more of an "always connected" websocket.
On 12/19/2011 10:57 PM, Andrew Berman wrote:
> A bit off topic, but have you ever considered adding support for
> something like Socket.IO (adding a TCP handler to support their
> JavaScript)? I think it's going to be a while before WebSockets is
> going to be able to be used across the web and I think Socket.IO is a
> great bridge until that time comes.
>
> On Mon, Dec 19, 2011 at 1:39 PM, Loïc Hoguin <essen@REDACTED
> <mailto:essen@REDACTED>> wrote:
>
> You can check out my implementation here for Cowboy:
> https://github.com/extend/__cowboy/blob/master/src/cowboy___http_rest.erl
> <https://github.com/extend/cowboy/blob/master/src/cowboy_http_rest.erl>
>
> Clean straightforward code was one of the big goals of this work. It
> has few differences with Webmachine, but people have been converting
> resources from Webmachine to Cowboy without much pain. And Cowboy
> already had a dispatcher so it was really just a matter of writing
> the decision code.
>
> Of course I'm open to any comment you may have about it, good or bad.
>
>
> On 12/19/2011 10:34 PM, Andrew Berman wrote:
>
> Ah, yes, I agree we would need a SimpleBridgeBinary and then go the
> opposite way if a web server doesn't support binary
> (binary_to_list). I
> don't think that would be too difficult to implement. The
> Webmachine
> decision core is the more difficult part but not too difficult
> as it
> has been implemented in many other languages which might make the
> decisioning a bit easier to follow.
>
> On Mon, Dec 19, 2011 at 1:27 PM, Loïc Hoguin
> <essen@REDACTED <mailto:essen@REDACTED>
> <mailto:essen@REDACTED <mailto:essen@REDACTED>>> wrote:
>
> SimpleBridge is nice, but it doesn't solve the OP's issue,
> which is
> that all the lists are being converted to binary when
> encoding into
> JSON, so he wants a binary webmachine to avoid converting
> from lists
> to binary all the time. I believe the implementation added
> to Cowboy
> recently does what the OP needs. On the other hand it's
> definitely
> tied to Cowboy and that should be taken into consideration when
> deciding what to use. It's also still considered experimental,
> although I've had good reports so far.
>
> Now if there was a SimpleBinaryBridge project it could be more
> suitable for his purpose, but afaik only Cowboy is full
> binary so
> far (only accepting (io)lists as output data). And of course
> adding
> Cowboy to SimpleBridge would just be a binary_to_list fest
> and would
> remove half the advantages of using that server so it's a
> bit of a
> dead end there.
>
>
> On 12/19/2011 10:16 PM, Andrew Berman wrote:
>
> There was talk on one of the mailing lists about using
> something
> like
> SimpleBridge
> (https://github.com/nitrogen/____simple_bridge
> <https://github.com/nitrogen/__simple_bridge>
> <https://github.com/nitrogen/__simple_bridge
> <https://github.com/nitrogen/simple_bridge>>) so that the use
>
> of a web server could be independent of Webmachine's logic,
> which IMO is
> the best solution. I don't think anyone did anything
> about it,
> but for
> some reason, SimpleBridge has Webmachine support, which
> doesn't make
> sense logically to me since Webmachine is a toolkit and
> not a
> web server.
>
> I use Webmachine and love what it does for me, but the code
> seems overly
> complicated with a heavy reliance on Mochiweb and uses
> parameterized
> modules (an unsupported feature of Erlang), so I would
> actually
> be more
> inclined to start a new project which is influenced by
> Webmachine but
> corrects all the issues with it and makes it a bit more
> flexible and
> modern (would love for Webmachine to support PATCH for
> example and
> something like Socket.IO). I'd be happy to help out
> with such a
> project
> if anyone is interested in starting one.
>
> --Andrew
>
> On Mon, Dec 19, 2011 at 12:24 PM, Tristan Sloughter
> <tristan.sloughter@REDACTED <mailto:tristan.sloughter@REDACTED>
> <mailto:tristan.sloughter@REDACTED
> <mailto:tristan.sloughter@REDACTED>>
> <mailto:tristan.sloughter@
> <mailto:tristan.sloughter@>__gm__ail.com <http://gmail.com>
>
> <mailto:tristan.sloughter@REDACTED
> <mailto:tristan.sloughter@REDACTED>>>> wrote:
>
> Interesting. Sucks that webmachine is so tied to
> mochi and
> mochi so
> tied to lists, haha. But I'll give this a look.
>
> Tristan
>
>
> On Mon, Dec 19, 2011 at 1:50 PM, Magnus Klaar
> <magnus.klaar@REDACTED <mailto:magnus.klaar@REDACTED>
> <mailto:magnus.klaar@REDACTED <mailto:magnus.klaar@REDACTED>__>
> <mailto:magnus.klaar@REDACTED <mailto:magnus.klaar@REDACTED>
>
> <mailto:magnus.klaar@REDACTED
> <mailto:magnus.klaar@REDACTED>__>__>> wrote:
>
> Hi!
>
> Cowboy currently includes an experimental
> webmachine-like
> interface. The first commit of this module should
> explain some
> of the key differences from webmachine. If i
> remember the
> history of this module the intial estimate for
> the time
> needed
> to decouple webmachine from mochiweb _and_ refactor
> webmachine
> to support both binaries and lists everywhere was
> greater than
> the time needed to just add the difference
> between the
> two to
> cowboy.
>
> https://github.com/extend/____cowboy/commit/____aab1587a4b3d8f0c3d92a208322752____7d51109980
> <https://github.com/extend/__cowboy/commit/__aab1587a4b3d8f0c3d92a208322752__7d51109980>
>
> <https://github.com/extend/__cowboy/commit/__aab1587a4b3d8f0c3d92a208322752__7d51109980
> <https://github.com/extend/cowboy/commit/aab1587a4b3d8f0c3d92a2083227527d51109980>>
>
> If you're interested in a
>
> MVH Magnus
>
> On Mon, Dec 19, 2011 at 6:40 PM, Tristan Sloughter
> <tristan.sloughter@REDACTED
> <mailto:tristan.sloughter@REDACTED>
> <mailto:tristan.sloughter@REDACTED
> <mailto:tristan.sloughter@REDACTED>>
> <mailto:tristan.sloughter@
> <mailto:tristan.sloughter@>__gm__ail.com <http://gmail.com>
>
> <mailto:tristan.sloughter@REDACTED
> <mailto:tristan.sloughter@REDACTED>>>> wrote:
>
> This may be better on a Webmachine questions
> list. But I
> thought I'd ask here first since it may be
> that someone
> working on one of the other Erlang web
> servers, besides
> Mochiweb, has worked on moving Webmachine to use
> that server.
>
> The reason I say that is, Webmachine
> currently relies on
> Mochiweb which passes lists instead of binary
> strings for
> requests. While the req_body of a request is
> given as a
> binary the path_info and query string is
> dealt with as
> lists. While I would think there could be a
> performance hit
> due to this my main reason to ask for
> alternatives
> is that
> dealing with JSON representations on the
> backend require
> converting the lists to binaries for processing
> every time.
>
> There has been
> https://github.com/mochi/____mochiweb/pull/38
> <https://github.com/mochi/__mochiweb/pull/38>
>
> <https://github.com/mochi/__mochiweb/pull/38
> <https://github.com/mochi/mochiweb/pull/38>> but
> its clear at the end of the discussion its not a
> change that
> will be happening to mochiweb anytime soon.
>
> So is there work on Webmachine backed by
> Cowboy or
> another
> Erlang web server?
>
> Thanks,
> Tristan
>
>
> ___________________________________________________
>
> erlang-questions mailing list
> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> <mailto:erlang-questions@REDACTED
> <mailto:erlang-questions@REDACTED>>
> <mailto:erlang-questions@
> <mailto:erlang-questions@>__erl__ang.org <http://erlang.org>
> <mailto:erlang-questions@REDACTED
> <mailto:erlang-questions@REDACTED>>>
>
> http://erlang.org/mailman/____listinfo/erlang-questions
> <http://erlang.org/mailman/__listinfo/erlang-questions>
> <http://erlang.org/mailman/__listinfo/erlang-questions
> <http://erlang.org/mailman/listinfo/erlang-questions>>
>
>
>
>
> ___________________________________________________
>
> erlang-questions mailing list
> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> <mailto:erlang-questions@REDACTED
> <mailto:erlang-questions@REDACTED>>
> <mailto:erlang-questions@
> <mailto:erlang-questions@>__erl__ang.org <http://erlang.org>
> <mailto:erlang-questions@REDACTED
> <mailto:erlang-questions@REDACTED>>>
>
> http://erlang.org/mailman/____listinfo/erlang-questions
> <http://erlang.org/mailman/__listinfo/erlang-questions>
> <http://erlang.org/mailman/__listinfo/erlang-questions
> <http://erlang.org/mailman/listinfo/erlang-questions>>
>
>
>
>
> ___________________________________________________
>
> erlang-questions mailing list
> erlang-questions@REDACTED <mailto:erlang-questions@REDACTED>
> <mailto:erlang-questions@REDACTED
> <mailto:erlang-questions@REDACTED>>
> http://erlang.org/mailman/____listinfo/erlang-questions
> <http://erlang.org/mailman/__listinfo/erlang-questions>
>
> <http://erlang.org/mailman/__listinfo/erlang-questions
> <http://erlang.org/mailman/listinfo/erlang-questions>>
>
>
>
> --
> Loďc Hoguin
> Dev:Extend
>
>
>
>
> --
> Loïc Hoguin
> Dev:Extend
>
>
--
Loïc Hoguin
Dev:Extend
More information about the erlang-questions
mailing list