title: Making a Go Webapp independent of Google App Engine
body: <p><em>This question comes from working on my webapp, a feed reader written in Go. The code is available at <a href="http://github.com/matthewbauer/rivulet" rel="nofollow">http://github.com/matthewbauer/rivulet</a> although that should not be necessary to answer the question.</em></p>
  
  <p>I have a webapp written in Go that is running on Google's App Engine. It uses the usual common App Engine libraries like datastore, memcache, and user.</p>
  
  <p>Is there any way to let my users run this app on their own without breaking App Engine compatibility?</p>
  
  <p>Go now provides <a href="http://golang.org/pkg/go/build/" rel="nofollow">build constraints</a> that exclude/include files based on target build platform:</p>
  
  <pre><code>// +build !appengine
  </code></pre>
  
  <p>So, I know that this is possible. But, my biggest problem is with my libraries that depend on App Engine: datastore, memcache, and user. I know other libraries provide datastore and memcache, and I can implement user on my own, but how would I go about wrapping it up?</p>
  
  <p>I know that I can have them set up a development server with the SDK, but that might be too involved for some users. I want a single executable that normal Go projects provide. IS that possible?</p>
  
  <p>If any examples exist, I haven't found them yet; any examples of App Engine independent webapps would be appreciated. I can learn by example.</p>