Files
cosmopolite/index.html

74 lines
3.0 KiB
HTML
Raw Normal View History

2014-05-22 10:41:40 -07:00
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<title>Cosmopolite by flamingcowtv</title>
<link rel="stylesheet" href="stylesheets/styles.css">
<link rel="stylesheet" href="stylesheets/pygment_trac.css">
<script src="javascripts/scale.fix.js"></script>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="wrapper">
<header>
<h1 class="header">Cosmopolite</h1>
<p class="header">Client/server publish/subscribe and key/value storage for AppEngine</p>
<ul>
<li class="download"><a class="buttons" href="https://github.com/flamingcowtv/cosmopolite/zipball/master">Download ZIP</a></li>
<li class="download"><a class="buttons" href="https://github.com/flamingcowtv/cosmopolite/tarball/master">Download TAR</a></li>
<li><a class="buttons github" href="https://github.com/flamingcowtv/cosmopolite">View On GitHub</a></li>
</ul>
<p class="header">This project is maintained by <a class="header name" href="https://github.com/flamingcowtv">flamingcowtv</a></p>
</header>
<section>
<h1>
<a name="cosmopolite" class="anchor" href="#cosmopolite"><span class="octicon octicon-link"></span></a>cosmopolite</h1>
<p>Client/server publish/subscribe and key/value storage for AppEngine.</p>
<p>Components:</p>
<ul>
<li>A server API built on the AppEngine Python framework.</li>
<li>A browser client library written in JavaScript.</li>
</ul><p>Feature overview:</p>
<ul>
<li>Near-realtime notification to subscribers of messages published to a "subject"</li>
<li>Server-side storage of past messages for replay later to clients</li>
<li>Support for associating a key with a message and for lookup of the most recent
message for a given key</li>
<li>Client identification persistence via localStorage tokens or in combination
with Google account signin</li>
<li>Complex messages supported via transparent JSON serialization</li>
<li>Server-side strict ordering of messages</li>
<li>Client-side message queueing in localStorage and resumption on restart</li>
<li>Message duplication detection and elimination</li>
<li>Promise support for notification of client -&gt; server operation completion</li>
</ul>
</section>
</div>
<!--[if !IE]><script>fixScale(document);</script><![endif]-->
2014-05-22 10:44:03 -07:00
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-37845853-2");
pageTracker._trackPageview();
} catch(err) {}
</script>
2014-05-22 10:41:40 -07:00
</body>
</html>