Giter Club home page Giter Club logo

gaek's Introduction

Hi there ๐Ÿ‘‹

gaek's People

Contributors

erichiggins avatar onufryk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

gaek's Issues

Improve performance of ndb_json module

Benchmark against stock json module on Python 2.7:

Running json benchmarks...
Running ndb_json benchmarks...

Results
=======
loads (large obj)
-----------------
json            1.103s
ndb_json        2.200s

dumps (large obj)
-----------------
json            0.559s
ndb_json        0.553s

loads (small objs)
------------------
json            1.201s
ndb_json        2.760s

dumps (small objs)
------------------
json            0.913s
ndb_json        1.253s

Adapt `gaek.environ` for use with Managed VMs

The environment variables different when running Managed VMs, and the RPC stubs used by google.appengine.api.modules are not available. It would be beneficial for gaek to still function in this runtime environment as much as possible without throwing exceptions. Here's a dump of os.environ from a module running in Managed VMs with a custom image:

{
  'MEMCACHE_PORT_11211_TCP': 'tcp://172.17.0.3:11211',
  'SERVER_SOFTWARE': 'gunicorn/19.4.1',
  'MEMCACHE_PORT_11211_TCP_ADDR': '172.17.0.3', 
  'GAE_PARTITION': 's',
  'GAE_VM': 'true', 
  'MEMCACHE_NAME': '/gaeapp/memcache', 
  'HOME': '/root', 
  'GAE_MODULE_VERSION': 'vmv8', 
  'APPENGINE_LOADBALANCER_IP': '', 
  'MEMCACHE_PORT_11211_TCP_PORT': '11211', 
  'GAE_LONG_APP_ID': 'jt-calc', 
  'DEBIAN_FRONTEND': 'noninteractive', 
  'MEMCACHE_PORT': 'tcp://172.17.0.3:11211', 
  'MODULE_YAML_PATH': 'module.yaml', 
  'GAE_MINOR_VERSION': '389176423410002280', 
  'USE_MVM_AGENT': 'true', 
  'HTTP_X_APPENGINE_CURRENT_NAMESPACE': 'production', 
  'MEMCACHE_ENV_DEBIAN_FRONTEND': 'noninteractive', 
  'GAE_MODULE_NAME': 'mvm', 
  'GAE_APPENGINE_HOSTNAME': 'jt-calc.appspot.com', 
  'APPENGINE_LOADBALANCER': '', 
  'HOSTNAME': '90e692391545', 
  'GAE_AFFINITY': 'true', 
  'PWD': '/home/vmagent/app', 
  'GAE_MODULE_INSTANCE': '0', 
  'MEMCACHE_PORT_11211_TCP_PROTO': 'tcp',
# I injected this in the application init method based on GAE_MODULE_VERSION. 
  'CURRENT_VERSION_ID': 'vmv8',
# This was injected through my module.yaml file.
  'CURRENT_MODULE_ID': 'mvm', 
# These came from the Dockerfiles.
  'PORT': '8080', 
   'LANG': 'C.UTF-8', 
  'VIRTUAL_ENV': '/env', 
  'PKG_PATH': '/env/local/lib/python2.7/site-packages/', 
  'PATH': '/env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 
  'SDK_VERSION': '1.9.30', 
  'SDK_URL': 'https://storage.googleapis.com/appengine-sdks/featured/google_appengine_1.9.30.zip', 
}

Adapt gaek for "namespace_manager" availability

As noted in #20 :

Based on an examination of the migration notes, it appears that there is at least one change which would break gaek, specifically the removal of google.appengine.api.namespace_manager which has no replacement.

The migration notes state:

There is no replacement for google.appengine.api.namespace_manager which is used to determine the default namespace when not passed in to Key()

This seems to primarily affect envrion.py which imports namespace_manager and makes its methods available.

Update gaek to be compatible with Google Cloud NDB

Cloud NDB is a client library designed to replace App Engine NDB in apps that migrate from the App Engine Python 2.7 standard runtime to the Python 3 standard runtime.

Updating gaek to be cross compatible with both App Engine NDB and Cloud NDB would be extremely helpful to anyone who makes use of gaek currently, and wishes to move to Cloud NDB, while continuing to use gaek.

Based on an examination of the migration notes, it appears that there is at least one change which would break gaek, specifically the removal of google.appengine.api.namespace_manager which has no replacement.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.