<html>
<head>
<!-- Copyright 2011 Google Inc.                                             -->
<!--                                                                        -->
<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
<!-- may not use this file except in compliance with the License. You may   -->
<!-- may obtain a copy of the License at                                    -->
<!--                                                                        -->
<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
<!--                                                                        -->
<!-- Unless required by applicable law or agreed to in writing, software    -->
<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
<!-- implied. License for the specific language governing permissions and   -->
<!-- limitations under the License.                                         -->
</head>
<body>

Provides for key-value Storage services.


<h2>Package Specification</h2>

This package contains the public interface to the Storage API. All
Storage services are to be accessed using types from this package,
starting with {@link com.google.gwt.storage.client.Storage}.

<h2>Related Documentation</h2>

For tutorials, examples, guides, and background documentation, please see:
<ul>
  <li><a href="http://code.google.com/p/gwt-mobile-webkit/w/list?q=label:API-Storage">Wiki - GWT Mobile WebKit</a></li>
  <li><a href="http://www.w3.org/TR/webstorage/">Web Storage Specification - W3C</a></li>
</ul>

</body>
</html>