
Browserver: A web server inside your web browser - wyclif
http://browserver.org/
======
vetler
Reminds me of Opera Unite[0], where you could build services available
externally in HTML and JavaScript. It even has NAT traversal. It never gained
much traction, and I believe Opera no longer develops Unite.

[0]: <http://unite.opera.com/overview/>

~~~
Surio
Didn't know about this one. Thanks!

------
jjguy
If you re-read the early cyberpunk scifi from Gibson and Stephenson, one of
the characteristics of their vision we're still missing is execution at the
edges. There was a strong concept of "my virtual space" in which space owners
control not just a visual presentation layer, but the full execution stack.

Our architectures are still dominated by central server farms, in which we
give up our data and cede control to the server operators. There are few
experiences where we have a true, decentralized experience with execution
controlled by the clients. BitTorrent and it's predecessors are the closest
we've come so far, but AFAIK it's all limited to peer to peer file transfer.

Every time I start to explore these thoughts, the browser is the obvious
platform for the first iterations. I'm glad to see initial designs appearing,
and look forward to seeing a truly decentralized and peer to peer service that
don't have critical dependencies on central servers.

~~~
TazeTSchnitzel
There are things like Freenet and I2P.

And thanks to WebRTC we may see these sorts of things running in the browser
soon.

------
jedschmidt
As discussed previously on HN: <http://news.ycombinator.com/item?id=4366555>

------
kybernetikos
I've actually created something similar myself, that does support streaming
and blob serving.

I haven't officially 'announced' it yet, as I was planning to make a nice drag
and drop Chrome FileSytem API way of setting up a website and hadn't got
around to it. So it's still fairly immature (although I think it supports most
of what the linked system does).

If you're interested, it's here: <https://github.com/kybernetikos/yobets>

I've designed it to run on heroku, and it sets up virtual hosts for each
client. I have a lot of ideas for how this could be used, here's two: 1. using
in browser encryption stream your location acquired by the geo location api
from your mobile phone but only to your friends who have the right key or 2.
any time you want to serve a large file to a bunch of friends, just fire up
one of these servers on heroku (first process is free) and serve it...

------
easternmonk
Looking at the larger picture in this context we are moving to a world where
Browser == computer.

~~~
romaniv
Yes, and we're slowly loosing all the advantages of having dedicated browsers
in the process.

------
gokulk
I tried using this lib to make a self aware browser which can also serve
requests to other browsers. but dropped it cause it didn't go well wit the
sandbox model.

------
zapdrive
Wow... this is awesome. But I can't think of any ways how this could be really
useful. Or maybe I need more imagination.

~~~
marshray
This site allows us to return an arbitrary HTTP response to be displayed in
other users' browsers?

We could all set cookies under the browserver.org domain for one thing.

Perhaps we could return some Javascript to be cached in browsers and self-
replicate among users of this page. Not so sure about that one though.

------
drivebyacct2
IIRC it's just using websockets to sort of proxy http requests. They still go
through a central server.

<http://news.ycombinator.com/item?id=4366555>

Also, when PeerConnection gets its Data api implemented this will be more
literally possible. You could connect to someone with minimal routing from a
server and then serve basically whatever peer to peer.

You know, your friends could share metadata among themselves and a webapp in
your browser could provide you real time access to the files associated with
that metadata when they [or their server] is online, etc.

~~~
vr000m
Data API will use SCTP and not TCP so there are some considerations for
implementing HTTP over SCTP based channel. Also it depends on what Congestion
control the SCTP implements/enables.

There are also NAT traversal considerations which would make connection setup
longer when compared to HTTP based infrastructure. Of course, as the
underlying transport matures over time (or people build extensive libraries in
JS to over come the deficiencies), we will see if data API will become larger
than its current vision (of serving data in-band with multimedia)

[RELIABLE vs UNRELIABLE DATA CHANNEL][http://tools.ietf.org/html/draft-ietf-
rtcweb-data-channel-01...](http://tools.ietf.org/html/draft-ietf-rtcweb-data-
channel-01#section-3)

[CONGESTION CONTROL] [http://tools.ietf.org/html/draft-ietf-rtcweb-data-
channel-01...](http://tools.ietf.org/html/draft-ietf-rtcweb-data-
channel-01#section-5)

~~~
drivebyacct2
PeerConnection API supports traditional NAT traversal mechanisms though there
are a very, very, very small number of cases that can be handled by a
privileged user that can't be emulated in the browser.

~~~
vr000m
What do you mean? Do you mean for a non-p2p applications or in general?

