kandi background
Explore Kits

gson-jodatime-serialisers | Gson serialiser/deserialisers | Date Time Utils library

 by   gkopff Java Version: Current License: MIT

 by   gkopff Java Version: Current License: MIT

Download this library from

kandi X-RAY | gson-jodatime-serialisers Summary

gson-jodatime-serialisers is a Java library typically used in Utilities, Date Time Utils applications. gson-jodatime-serialisers has no bugs, it has no vulnerabilities, it has build file available, it has a Permissive License and it has low support. You can download it from GitHub, Maven.
A set of Gson serialiser/deserialisers for dealing with Joda Time entities. Wherever possible, ISO 8601 string representations are used. The following Joda Time classes are handled:.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • gson-jodatime-serialisers has a low active ecosystem.
  • It has 108 star(s) with 28 fork(s). There are 6 watchers for this library.
  • It had no major release in the last 12 months.
  • There are 5 open issues and 11 have been closed. On average issues are closed in 136 days. There are no pull requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of gson-jodatime-serialisers is current.
This Library - Support
Best in #Date Time Utils
Average in #Date Time Utils
This Library - Support
Best in #Date Time Utils
Average in #Date Time Utils

quality kandi Quality

  • gson-jodatime-serialisers has 0 bugs and 0 code smells.
This Library - Quality
Best in #Date Time Utils
Average in #Date Time Utils
This Library - Quality
Best in #Date Time Utils
Average in #Date Time Utils

securitySecurity

  • gson-jodatime-serialisers has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • gson-jodatime-serialisers code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
This Library - Security
Best in #Date Time Utils
Average in #Date Time Utils
This Library - Security
Best in #Date Time Utils
Average in #Date Time Utils

license License

  • gson-jodatime-serialisers is licensed under the MIT License. This license is Permissive.
  • Permissive licenses have the least restrictions, and you can use them in most projects.
This Library - License
Best in #Date Time Utils
Average in #Date Time Utils
This Library - License
Best in #Date Time Utils
Average in #Date Time Utils

buildReuse

  • gson-jodatime-serialisers releases are not available. You will need to build from source code and install.
  • Deployable package is available in Maven.
  • Build file is available. You can build the component from source.
  • Installation instructions are not available. Examples and code snippets are available.
  • gson-jodatime-serialisers saves you 517 person hours of effort in developing the same functionality from scratch.
  • It has 1258 lines of code, 87 functions and 26 files.
  • It has low code complexity. Code complexity directly impacts maintainability of the code.
This Library - Reuse
Best in #Date Time Utils
Average in #Date Time Utils
This Library - Reuse
Best in #Date Time Utils
Average in #Date Time Utils
Top functions reviewed by kandi - BETA

kandi has reviewed gson-jodatime-serialisers and discovered the below as its top functions. This is intended to give you an instant insight into gson-jodatime-serialisers implemented functionality, and help decide if they suit your requirements.

  • Registers all time types .
    • Registers a date - time converter .
      • Deserialize a duration
        • Register a duration converter .
          • Register a local date time converter .
            • Register a local time type converter .
              • Serialize a duration .

                Get all kandi verified functions for this library.

                Get all kandi verified functions for this library.

                gson-jodatime-serialisers Key Features

                DateMidnight

                DateTime

                DateTimeZone

                Duration

                Interval

                Instant

                LocalDate

                LocalDateTime

                LocalTime

                Period

                gson-jodatime-serialisers Examples and Code Snippets

                See all related Code Snippets

                Getting it

                copy iconCopydownload iconDownload
                <dependency>
                  <groupId>com.fatboyindustrial.gson-jodatime-serialisers</groupId>
                  <artifactId>gson-jodatime-serialisers</artifactId>
                  <version>1.8.0</version>
                </dependency>
                

                Using it

                copy iconCopydownload iconDownload
                final Gson gson = Converters.registerDateTime(new GsonBuilder()).create();
                final DateTime original = new DateTime();
                
                final String json = gson.toJson(original);
                final DateTime reconstituted = gson.fromJson(json, DateTime.class);
                

                Multidex app still over 64K method limit

                copy iconCopydownload iconDownload
                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-android:3.1.0'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0'
                
                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-base:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-utilities:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0@jar'
                compile 'commons-io:commons-io:2.5'
                compile 'org.slf4j:slf4j-api:1.7.25@jar'
                
                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-android:3.1.0'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0'
                
                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-base:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-utilities:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0@jar'
                compile 'commons-io:commons-io:2.5'
                compile 'org.slf4j:slf4j-api:1.7.25@jar'
                

                Android Configuration with name 'kapt' not found

                copy iconCopydownload iconDownload
                apply plugin: 'kotlin-kapt'
                
                apply plugin: 'com.android.library'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'realm-android'
                
                apply plugin: 'com.android.application'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'com.jakewharton.hugo'
                apply plugin: 'com.novoda.bintray-release'
                apply plugin: 'realm-android'
                
                apply plugin: 'kotlin-kapt'
                
                apply plugin: 'com.android.library'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'realm-android'
                
                apply plugin: 'com.android.application'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'com.jakewharton.hugo'
                apply plugin: 'com.novoda.bintray-release'
                apply plugin: 'realm-android'
                
                apply plugin: 'kotlin-kapt'
                
                apply plugin: 'com.android.library'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'realm-android'
                
                apply plugin: 'com.android.application'
                apply plugin: 'kotlin-android'
                apply plugin: 'kotlin-android-extensions'
                apply plugin: 'kotlin-kapt'
                apply plugin: 'com.jakewharton.hugo'
                apply plugin: 'com.novoda.bintray-release'
                apply plugin: 'realm-android'
                

                GSON exception during parsing timestamp

                copy iconCopydownload iconDownload
                Gson gson = new GsonBuilder().setDateFormat("[YYYY,  MM, dd, HH, mm, ss, SSSSSSSSS]").create();
                Converters.registerLocalDateTime(gson).create();
                
                public class JsonDateTimeArrayDeserializer implements JsonDeserializer<LocalDateTime>{
                    @Override
                    public LocalDateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
                        JsonArray jArr = json.getAsJsonArray();
                        return LocalDateTime.of(jArr.get(0).getAsInt(), jArr.get(1).getAsInt(), jArr.get(2).getAsInt(), jArr.get(3).getAsInt(), jArr.get(4).getAsInt(), jArr.get(5).getAsInt(), jArr.get(6).getAsInt());
                    }
                }
                
                this.gson = new GsonBuilder.registerTypeAdapter(LocalDateTime.class, new JsonDateTimeArrayDeserializer()).create
                
                public class JsonDateTimeArrayDeserializer implements JsonDeserializer<LocalDateTime>{
                    @Override
                    public LocalDateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
                        JsonArray jArr = json.getAsJsonArray();
                        return LocalDateTime.of(jArr.get(0).getAsInt(), jArr.get(1).getAsInt(), jArr.get(2).getAsInt(), jArr.get(3).getAsInt(), jArr.get(4).getAsInt(), jArr.get(5).getAsInt(), jArr.get(6).getAsInt());
                    }
                }
                
                this.gson = new GsonBuilder.registerTypeAdapter(LocalDateTime.class, new JsonDateTimeArrayDeserializer()).create
                

                See all related Code Snippets

                Community Discussions

                Trending Discussions on gson-jodatime-serialisers
                • Multidex app still over 64K method limit
                • Android Configuration with name 'kapt' not found
                • GSON exception during parsing timestamp
                Trending Discussions on gson-jodatime-serialisers

                QUESTION

                Multidex app still over 64K method limit

                Asked 2020-Jan-16 at 10:30

                I'm facing a weird issue with multidex. I've had my app multidexed for a long time, but lately I can't build it anymore. It started after configuring Kotlin in the project.

                The 'run' option in Android Studio works: the app runs successfully in my device. However, if I try the "Build APK" option or run gradlew assembleDebug, the build fails with the usual exception:

                Error:The number of method references in a .dex file cannot exceed 64K.
                Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
                Error:com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
                

                However, multidex worked correctly before adding Kotlin. I can checkout the commit just before adding Kotlin, build the apk and check there's 3 .dex files, with a method count over 100k total.

                Some key details:

                • Gradle 4.1, with Gradle plugin 3.0.1
                • Build-tools version 26.0.2
                • Kotlin version 1.2.0

                After proguarding, the app does not need multidex, but I don't really want to proguard for debug compilation, and besides, this should be working.

                Here's the complete build.gradle script:

                buildscript {
                    repositories {
                        mavenCentral()
                    }
                }
                apply plugin: 'com.android.application'
                apply plugin: 'kotlin-android'
                apply plugin: 'idea'
                
                
                
                repositories {
                    mavenCentral()
                    jcenter()
                    maven { url "https://maven.google.com" }
                    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
                    maven { url 'https://jitpack.io' }
                }
                
                idea {
                    module {
                        downloadJavadoc = true
                        downloadSources = true
                    }
                }
                
                // read keystore for app signing
                def keystorePropertiesFile = rootProject.file("keystore.properties")
                def keystoreProperties = null
                if (keystorePropertiesFile.exists()) {
                    keystoreProperties = new Properties()
                    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
                }
                
                
                def getDate() {
                    def date = new Date()
                    def formattedDate = date.format('yyyy.MM.dd')
                    return formattedDate
                }
                
                def getCustomProguardFiles() {
                    return fileTree(dir: "proguard", include: ["*.pro"]).asList().toArray()
                }
                
                android {
                    compileSdkVersion 25
                    buildToolsVersion '26.0.2'
                    defaultConfig {
                        minSdkVersion 16
                        targetSdkVersion 25
                        versionCode 1
                        versionName "1.0"
                        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
                        applicationId "my.app.id"
                        multiDexEnabled true
                
                        manifestPlaceholders = [
                                'appAuthRedirectScheme': 'my.app.id'
                        ]
                
                        //TODO do not put this into release
                        resValue "string", "google_client_id", google_appId + ".apps.googleusercontent.com"
                        resValue "string", "google_auth_redirect_uri", "com.googleusercontent.apps." + google_appId + ":/oauth2redirect"
                    }
                
                    dexOptions {
                
                    }
                
                    dexOptions {
                        javaMaxHeapSize "2g"
                    }
                
                    packagingOptions {
                        exclude 'META-INF/DEPENDENCIES'
                        exclude 'META-INF/NOTICE'
                        exclude 'META-INF/LICENSE'
                        exclude 'META-INF/LICENSE.txt'
                        exclude 'META-INF/NOTICE.txt'
                    }
                
                    signingConfigs {
                        release {
                            keyAlias keystoreProperties != null ? keystoreProperties['keyAlias'] : null
                            keyPassword keystoreProperties != null ? keystoreProperties['keyPassword'] : null
                            storeFile keystoreProperties != null ? file(keystoreProperties['storeFile']) : null
                            storePassword keystoreProperties != null ? keystoreProperties['storePassword'] : null
                        }
                    }
                
                
                    lintOptions {
                        abortOnError false
                        checkReleaseBuilds false
                    }
                    buildTypes {
                        release {
                            minifyEnabled true
                            proguardFiles getDefaultProguardFile('proguard-android.txt')
                            proguardFiles getCustomProguardFiles()
                            testProguardFiles getDefaultProguardFile('proguard-android.txt')
                            testProguardFiles getCustomProguardFiles()
                            signingConfig signingConfigs.release
                        }
                        debug {
                            debuggable true
                            minifyEnabled false
                        }
                    }
                
                    flavorDimensions "buildType"
                
                    productFlavors {
                        develop {
                            applicationIdSuffix ""
                            dimension "buildType"
                        }
                        product {
                            dimension "buildType"
                        }
                        ci {
                            dimension "buildType"
                        }
                    }
                
                    applicationVariants.all { variant ->
                        variant.outputs.all {
                            outputFileName = "${variant.name}-${variant.versionName}.apk"
                        }
                    }
                    compileOptions.incremental = false
                }
                
                dependencies {
                
                    /********** DEBUGGING **********/
                    // Chrome debug bridge
                    compile 'com.facebook.stetho:stetho:1.5.0'
                    compile 'com.facebook.stetho:stetho-okhttp3:1.5.0'
                
                    // Memory leak debugging
                    //  1.5.2 held back because of a bug with gradle 3.0
                    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
                    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
                    testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
                    androidTestCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
                
                
                    /********** SUPPORT **********/
                    // Multidex support
                    compile 'com.android.support:multidex:1.0.2'
                
                    // Support libs
                    compile "com.android.support:appcompat-v7:$libVersions.android.support"
                    compile "com.android.support:cardview-v7:$libVersions.android.support"
                    compile "com.android.support:customtabs:$libVersions.android.support"
                    compile "com.android.support:design:$libVersions.android.support"
                    compile "com.android.support:gridlayout-v7:$libVersions.android.support"
                    compile "com.android.support:palette-v7:$libVersions.android.support"
                    compile "com.android.support:preference-v7:$libVersions.android.support"
                    compile "com.android.support:recyclerview-v7:$libVersions.android.support"
                    compile "com.android.support:support-annotations:$libVersions.android.support"
                    compile "com.android.support:support-v4:$libVersions.android.support"
                    compile "com.android.support:support-v13:$libVersions.android.support"
                
                    // Testing dependencies
                    //  Made explicit to avoid conflicts with other testing libs
                    androidTestCompile "com.android.support:appcompat-v7:$libVersions.android.support"
                    androidTestCompile "com.android.support:design:$libVersions.android.support"
                    androidTestCompile "com.android.support:recyclerview-v7:$libVersions.android.support"
                    androidTestCompile "com.android.support:support-annotations:$libVersions.android.support"
                    androidTestCompile "com.android.support:support-v4:$libVersions.android.support"
                
                
                    /********** TESTING **********/
                    // JUnit
                    testCompile 'junit:junit:4.12'
                
                    // Mockito
                    testCompile "org.mockito:mockito-core:2.8.47"
                
                    // Support testing
                    androidTestCompile 'com.android.support.test.espresso:espresso-contrib:3.0.0'
                    androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.0'
                    androidTestCompile 'com.android.support.test:rules:1.0.0'
                    androidTestCompile 'com.android.support.test:runner:1.0.0'
                
                
                    /********** UTILITIES **********/
                    // HTML parsing
                    compile 'org.jsoup:jsoup:1.10.2'
                
                    // Event bus
                    compile 'org.greenrobot:eventbus:3.0.0'
                
                    // FHIR
                    compile 'ca.uhn.hapi.fhir:hapi-fhir-android:3.1.0'
                    compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0'
                
                    // Jobs
                    compile 'com.evernote:android-job:1.1.11'
                
                    // JSON serializing-deserializing
                    compile 'com.google.code.gson:gson:2.8.1'
                
                    // JWT validation
                    compile 'com.nimbusds:nimbus-jose-jwt:4.41.1'
                
                    // Lang utilities
                    //  Used for Levenshtein distance, etc
                    compile 'org.apache.commons:commons-lang3:3.6'
                    compile 'org.apache.commons:commons-text:1.1'
                
                    // OpenID authentication
                    compile 'net.openid:appauth:0.7.0'
                
                    // QR code scanning
                    compile 'com.google.zxing:core:3.3.0'
                    compile 'com.journeyapps:zxing-android-embedded:3.5.0@aar'
                
                    // Play Services (for Firebase InstanceID)
                    compile 'com.google.android.gms:play-services-auth:11.6.0'
                
                    // Recurrence processing
                    compile 'org.dmfs:lib-recur:0.10'
                
                    // REST services
                    compile 'com.squareup.retrofit2:retrofit:2.3.0'
                    compile 'com.squareup.retrofit2:converter-scalars:2.1.0'
                
                    // SQLite ORM
                    compile 'com.j256.ormlite:ormlite-android:5.0'
                
                    // Time and date handling
                    compile 'com.fatboyindustrial.gson-jodatime-serialisers:gson-jodatime-serialisers:1.6.0'
                    compile 'joda-time:joda-time:2.9.7'
                
                    // View/resource binding
                    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
                    compile 'com.jakewharton:butterknife:8.8.1'
                
                
                    /********** VIEWS AND VIEW UTILITIES **********/
                    // About page with libraries
                    compile('com.mikepenz:aboutlibraries:5.2.5@aar') {
                        transitive = true
                    }
                
                    // Calendar views
                    compile 'com.roomorama:caldroid:3.0.1'
                    compile 'com.squareup:android-times-square:1.6.4@aar'
                
                    // Circular progress "pie" view
                    //  Used for pill picker
                    compile 'com.github.filippudak.progresspieview:library:1.0.4'
                
                    // Dialogs with material style
                    compile 'com.github.javiersantos:MaterialStyledDialogs:2.0'
                
                    // Floating Action Button
                    compile 'com.getbase:floatingactionbutton:1.9.0'
                
                    // GIF ImageView
                    compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.3'
                
                    // Icons
                    compile 'com.mikepenz:community-material-typeface:1.9.32.2@aar'
                    compile 'com.mikepenz:google-material-typeface:2.1.2.1@aar'
                    compile 'com.mikepenz:iconics-core:2.7.1@aar'
                
                    // Image loading
                    compile 'com.squareup.picasso:picasso:2.5.2'
                
                    // Intro slides
                    compile 'com.heinrichreimersoftware:material-intro:1.5.8'
                
                    // Material style utilities
                    compile('com.mikepenz:materialize:0.2.7@aar') {
                        transitive = true
                    }
                
                    // Picker DialogFragments
                    compile 'com.code-troopers.betterpickers:library:3.1.0'
                
                    // Round image view
                    compile 'com.makeramen:roundedimageview:1.5.0'
                
                    // Tab strip
                    compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
                
                    // Sliding left drawer
                    compile('com.mikepenz:materialdrawer:4.4.1@aar') {
                        transitive = true
                    }
                
                    // Recyclerview adapters
                    compile('com.mikepenz:fastadapter:2.1.5@aar') {
                        transitive = true
                    }
                    compile 'com.mikepenz:fastadapter-commons:2.1.0@aar'
                    compile 'com.mikepenz:fastadapter-extensions:2.1.0@aar'
                    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
                
                    // Schedule step-by-step building
                    compile 'com.stepstone.stepper:material-stepper:3.3.0'
                    compile 'com.wdullaer:materialdatetimepicker:3.2.2'
                    compile 'com.shawnlin:number-picker:2.4.4'
                }
                
                apply plugin: 'com.google.gms.google-services'
                

                And the build.gradle of the project:

                // Top-level build file where you can add configuration options common to all sub-projects/modules.
                buildscript {
                    ext.kotlin_version = '1.2.0'
                    repositories {
                        jcenter()
                        maven { url "https://maven.google.com" }
                    }
                    dependencies {
                        classpath 'com.android.tools.build:gradle:3.0.1'
                        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
                        classpath 'com.google.gms:google-services:3.0.0'
                    }
                    ext {
                        libVersions = [
                                android: [
                                        support: '25.4.0'
                                ]
                        ]
                    }
                }
                

                ANSWER

                Answered 2017-Dec-19 at 15:52

                It turned out to be a problem with the way I was including HAPI-FHIR. It's a really big library with tons of dependencies, and it probably was collapsing the main dexfile.

                In the end, I solved it by replacing:

                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-android:3.1.0'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0'
                

                with:

                // FHIR
                compile 'ca.uhn.hapi.fhir:hapi-fhir-base:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-utilities:3.1.0@jar'
                compile 'ca.uhn.hapi.fhir:hapi-fhir-structures-dstu3:3.1.0@jar'
                compile 'commons-io:commons-io:2.5'
                compile 'org.slf4j:slf4j-api:1.7.25@jar'
                

                commons-io and slf4j are runtime dependencies of HAPI, and when using @jar those dependencies aren't downloaded, so they need to be explicitly declared.

                Note: this particular configuration is only valid for my use case, as HAPI has more runtime dependencies, which would need to be added manually as well in case they're needed.

                Source https://stackoverflow.com/questions/47814828

                Community Discussions, Code Snippets contain sources that include Stack Exchange Network

                Vulnerabilities

                No vulnerabilities reported

                Install gson-jodatime-serialisers

                You can download it from GitHub, Maven.
                You can use gson-jodatime-serialisers like any standard Java library. Please include the the jar files in your classpath. You can also use any IDE and you can run and debug the gson-jodatime-serialisers component as you would do with any other Java program. Best practice is to use a build tool that supports dependency management such as Maven or Gradle. For Maven installation, please refer maven.apache.org. For Gradle installation, please refer gradle.org .

                Support

                For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .

                DOWNLOAD this Library from

                Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
                over 430 million Knowledge Items
                Find more libraries
                Reuse Solution Kits and Libraries Curated by Popular Use Cases
                Explore Kits

                Save this library and start creating your kit

                Explore Related Topics

                Share this Page

                share link
                Consider Popular Date Time Utils Libraries
                Try Top Libraries by gkopff
                Compare Date Time Utils Libraries with Highest Support
                Compare Date Time Utils Libraries with Highest Quality
                Compare Date Time Utils Libraries with Highest Security
                Compare Date Time Utils Libraries with Permissive License
                Compare Date Time Utils Libraries with Highest Reuse
                Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
                over 430 million Knowledge Items
                Find more libraries
                Reuse Solution Kits and Libraries Curated by Popular Use Cases
                Explore Kits

                Save this library and start creating your kit

                • © 2022 Open Weaver Inc.