Coder Social home page Coder Social logo

miniguava's Introduction

MiniGuava: Guava for minimalists and Android

Build Status

The MiniGuava library provides a small and decoupled alternative for Google Guava. Original library is monolithic and huge (15000 methods), so it is not suitable for Android development.

Requires JDK 1.6 or higher.

Some of methods requires API level 9 in Android (e.g. newSetFromMap()).

MODULES

  • net.ypresto.miniguava:miniguava-base:19.0.0-beta1
    • Joiner
    • Objects#equal, Objects#hashCode
    • MoreObjects
    • Preconditions
  • net.ypresto.miniguava:miniguava-compare:19.0.0-beta1
    • Ordering
    • ComparisonChain
    • PrimitiveComparison (contains Ints.compare() and etc.)
  • net.ypresto.miniguava:miniguava-collect:19.0.0-beta1
    • Subset of Lists, Maps and Sets
    • MapMaker
  • net.ypresto.miniguava:miniguava-collect-immutables:19.0.0-beta1
    • ImmutableXX from collect package.
    • Almost all things other than BiXX, MultiXX, SortedXX

INSTALLATION

Available from jcenter.

dependencies {
    compile 'net.ypresto.miniguava:miniguava-base:19.0.0-beta1'
    ...
}

POLICY

  • Use original code as much as possible to track upstream.
  • Include really useful things which cannot be replaced by other libraries.
  • Decouple modules except for depending on miniguava-base.
  • Remove less frequently used things (e.g. NavigableXX).
  • Remove google specific codes (e.g. GWT support).
  • Remove Serializable supports as it is not guaranteed.
    • Except for immutables which are designed to replace standard collection impls.

IMPORTANT WARNINGS

  1. APIs marked with the @Beta annotation at the class or method level are subject to change. They can be modified in any way, or even removed, at any time. If your code is a library itself (i.e. it is used on the CLASSPATH of users outside your own control), you should not use beta APIs, unless you repackage them (e.g. using ProGuard).

  2. Deprecated non-beta APIs will be removed two years after the release in which they are first deprecated. You must fix your references before this time. If you don't, any manner of breakage could result (you are not guaranteed a compilation error).

  3. Serialized forms of ALL objects are subject to change unless noted otherwise. Do not persist these and assume they can be read by a future version of the library.

  4. Our classes are not designed to protect against a malicious caller. You should not use them for communication between trusted and untrusted code.

  5. We unit-test and benchmark the libraries using only OpenJDK 1.7 on Linux. Some features, especially in com.google.common.io, may not work correctly in other environments.

LICENSE

Copyright (C) The Guava Authors
Copyright (C) 2016 Yuya Tanaka

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You 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.
See the License for the specific language governing permissions and
limitations under the License.

miniguava's People

Contributors

ypresto avatar

Stargazers

 avatar aichibocai avatar Luck Hard avatar Ala Hammad avatar Wojciech Rozwadowski avatar Amine Laadhari avatar  avatar Ersin Ertan avatar Koji Hisano avatar Satoshi Namai avatar

Watchers

 avatar James Cloos avatar Wojciech Rozwadowski avatar

Forkers

xialideng lihl666

miniguava's Issues

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.