[erlang-questions] Webmachine Binary Request Strings
Andrew Berman
rexxe98@REDACTED
Mon Dec 19 22:57:15 CET 2011
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> 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>> 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@**gmail.com<tristan.sloughter@REDACTED>
>> >
>> <mailto:tristan.sloughter@REDACTED**ail.com <http://gmail.com>
>>
>> <mailto:tristan.sloughter@**gmail.com<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**>__>> 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@**gmail.com<tristan.sloughter@REDACTED>
>> >
>> <mailto:tristan.sloughter@REDACTED**ail.com <http://gmail.com>
>>
>> <mailto:tristan.sloughter@**gmail.com<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@**erlang.org<erlang-questions@REDACTED>
>> >
>> <mailto:erlang-questions@REDACTED**ang.org <http://erlang.org>
>> <mailto:erlang-questions@**erlang.org<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@**erlang.org<erlang-questions@REDACTED>
>> >
>> <mailto:erlang-questions@REDACTED**ang.org <http://erlang.org>
>> <mailto:erlang-questions@**erlang.org<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@**erlang.org<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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111219/37bc3128/attachment.htm>
More information about the erlang-questions
mailing list