[erlang-questions] Webmachine Binary Request Strings
Andrew Berman
rexxe98@REDACTED
Mon Dec 19 23:05:23 CET 2011
Awesome!
On Mon, Dec 19, 2011 at 2:02 PM, Loïc Hoguin <essen@REDACTED> wrote:
> Working on this:
> https://github.com/extend/**bullet <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>
>>
>> <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>
>> >
>>
>> <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>
>> >>
>> <mailto:tristan.sloughter@
>> <mailto:tristan.sloughter@>__g**m__ail.com <http://gm__ail.com> <
>> http://gmail.com>
>>
>>
>> <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**
>> >__>
>> <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/__aab1587a4b3d8f0c3d92a208322752__7d51109980>
>> >
>>
>>
>> <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>
>> >>
>> <mailto:tristan.sloughter@
>> <mailto:tristan.sloughter@>__g**m__ail.com <http://gm__ail.com> <
>> http://gmail.com>
>>
>>
>> <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>
>> >
>>
>>
>> <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>
>> >>
>> <mailto:erlang-questions@
>> <mailto:erlang-questions@>__er**l__ang.org <http://erl__ang.org> <
>> http://erlang.org>
>> <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>
>> >
>> <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>
>> >>
>> <mailto:erlang-questions@
>> <mailto:erlang-questions@>__er**l__ang.org <http://erl__ang.org> <
>> http://erlang.org>
>> <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>
>> >
>> <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>
>> >
>>
>>
>> <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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20111219/a7a4a51a/attachment.htm>
More information about the erlang-questions
mailing list