[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