spot_img
HomeUnicornsGoogleGoogle Open-Sources The App Engine Standard Java runtime

Google Open-Sources The App Engine Standard Java runtime

The introduction of Google App Engine in 2008 opened up a whole new world for developers – one without worrying about infrastructure management or scaling web applications. Java 8, 11 and 17 all run on this platform along with alternative JVM languages like Apache Groovy or Kotlin are also part of it.

But now, Google has finally opened-source the Java Source code for its Google App Engine Standard environment, which includes all of its production runtime features as well as APIs and local SDKs.

In the below picture representation, items in orange are public modules artifacts and items in yellow are internal ones. Modules ending with * are only used on the production server-side:

Source: https://github.com/GoogleCloudPlatform/appengine-java-standard
PackageDescription
com.google.appengine.apiProvides facilities for server lifecycle management, threading and namespaces/multitenancy.
com.google.appengine.api.appidentityProvides a service to sign arbitrary byte arrays using an internally-generated, rotated private key.
com.google.appengine.api.backendsProvides access to long-running, addressable servers.
com.google.appengine.api.blobstoreProvides management and persistent storage of large, immutable byte arrays.
com.google.appengine.api.capabilitiesProvides status information about the services available via the Google App Engine APIs.
com.google.appengine.api.datastoreProvides persistent storage, also accessible via JDO or JPA interfaces.
com.google.appengine.api.filesProvides a service for file storage and access.
com.google.appengine.api.imagesProvides facilities for the creation and manipulation of images.
com.google.appengine.api.logProvides access to request logs and application logs.
com.google.appengine.api.mailProvides a service to send email messages on behalf of administrators or authenticated users, also accessible via a JavaMail interface.
com.google.appengine.api.memcacheProvides fast but unreliable data storage, also accessible via a JCache interface.
com.google.appengine.api.modulesUtility functions for working with modules.
com.google.appengine.api.oauthProvides a method for clients to access server resources on behalf of a resource owner, as well as a process for end-users to authorize third-party access to their server resources without sharing their credentials.
com.google.appengine.api.quotaProvides measurement of API and CPU usage during requests.
com.google.appengine.api.searchProvides a service for indexing documents and retrieving them using search queries.
com.google.appengine.api.search.checkers 
com.google.appengine.api.search.query 
com.google.appengine.api.taskqueueProvides a mechanism to perform work initiated by a user request, outside of that request.
com.google.appengine.api.urlfetchProvides a service to make HTTP/S requests of other servers on the internet.
com.google.appengine.api.usersProvides facilities to check if a user has authenticated, retrieve their email address, and check if they are an administrator for this application.
com.google.appengine.api.utilsProvides common utility classes.
com.google.apphosting.apiProvides access to the ApiProxy, which dispatches API calls to backend services.

Github: https://github.com/GoogleCloudPlatform/appengine-java-standard

References:

  • https://cloud.google.com/appengine/docs/standard/java/javadoc
  • https://cloud.google.com/blog/topics/developers-practitioners/open-sourcing-app-engine-standard-java-runtime
  • https://www.infoq.com/news/2022/03/google-appengine-java/

Latest Articles

Explore More