{"id":23096663,"url":"https://github.com/yvanmazy/nomoreinstance","last_synced_at":"2026-03-08T05:34:17.567Z","repository":{"id":256828883,"uuid":"856554979","full_name":"YvanMazy/NoMoreInstance","owner":"YvanMazy","description":"Java library for Object-Pooling. Extremely fast, lightweight. High concurrency and thread-safe support.","archived":false,"fork":false,"pushed_at":"2025-03-25T16:55:49.000Z","size":121,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-19T07:50:22.603Z","etag":null,"topics":["concurrency","fast","java-library","lightweight","lock-free","object-pool","thread-safe"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/YvanMazy.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-12T19:21:08.000Z","updated_at":"2025-04-12T21:00:35.000Z","dependencies_parsed_at":"2025-07-19T04:25:38.032Z","dependency_job_id":"8f903374-0a0d-4c7d-b670-db0b6c19b46d","html_url":"https://github.com/YvanMazy/NoMoreInstance","commit_stats":null,"previous_names":["yvanmazy/nomoreinstance"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/YvanMazy/NoMoreInstance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YvanMazy%2FNoMoreInstance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YvanMazy%2FNoMoreInstance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YvanMazy%2FNoMoreInstance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YvanMazy%2FNoMoreInstance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/YvanMazy","download_url":"https://codeload.github.com/YvanMazy/NoMoreInstance/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/YvanMazy%2FNoMoreInstance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30246752,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["concurrency","fast","java-library","lightweight","lock-free","object-pool","thread-safe"],"created_at":"2024-12-16T22:40:20.175Z","updated_at":"2026-03-08T05:34:17.521Z","avatar_url":"https://github.com/YvanMazy.png","language":"Java","readme":"# NoMoreInstance\n\n**NoMoreInstance** is a highly efficient, lightweight Java library that offers robust object-pooling capabilities,\nspecifically designed to reduce the overhead of creating short-lived objects in mono-threaded or high-concurrency\nenvironments. Designed for performance-critical applications.\n\n- [✨ Features](#-features)\n- [❓ When to Use](#-when-to-use)\n- [⚙️ How to Use](#%EF%B8%8F-how-to-use)\n  - [Import the dependency with Gradle or Maven](#import-the-dependency-with-gradle-or-maven)\n  - [Create a Pool](#create-a-pool)\n  - [What Concurrency Level to choose?](#what-concurrency-level-to-choose)\n  - [What Pool type to choose?](#what-pool-type-to-choose)\n- [📄 License](#-license)\n- [🔌 Contributing](#-contributing)\n\n## ✨ Features\n\n- **Lightweight \u0026 Modular**: Easy to integrate with any Java project.\n- **High-Concurrency Support**: Supports multiple levels of concurrency, including synchronized and lock-free\n  operations.\n- **MIT License**: Project under the MIT License, offering the freedom to use, modify, and distribute the software.\n\n## ❓ When to Use\n\n**NoMoreInstance** is perfect for applications that create a large number of ephemeral objects. By reusing objects, the\nlibrary helps reduce garbage collection pressure and improve performance. However, it's not suited for long-lived\nobjects, as object pooling is primarily beneficial for managing short-lived instances.\n\n## ⚙️ How to Use\n\n- Java 17 or higher is required.\n\n### Import the dependency with Gradle or Maven\n\n**Latest version**: [![Release](https://jitpack.io/v/YvanMazy/NoMoreInstance.svg)](https://jitpack.io/#YvanMazy/NoMoreInstance)\n\n```groovy\nrepositories {\n    maven { url 'https://jitpack.io' }\n}\n\ndependencies {\n    implementation 'com.github.YvanMazy:NoMoreInstance:VERSION'\n}\n```\n\n```xml\n\u003crepositories\u003e\n    \u003crepository\u003e\n        \u003cid\u003ejitpack.io\u003c/id\u003e\n        \u003curl\u003ehttps://jitpack.io\u003c/url\u003e\n    \u003c/repository\u003e\n\u003c/repositories\u003e\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.YvanMazy\u003c/groupId\u003e\n        \u003cartifactId\u003eNoMoreInstance\u003c/artifactId\u003e\n        \u003cversion\u003eVERSION\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n### Create a Pool\n\nExample code:\n\n````java\nprivate final SweepCleanablePool\u003cVector\u003e pool =\n        Pool.\u003cVector\u003enewBuilder().supplier(Vector::new) // Optional object creation supplier\n                .cleaner(Vector::reset) // Optional cleaner for after use\n                .concurrency(PoolConcurrency.LOCK_FREE) // Pool concurrency level\n                .buildSweep(Vector.class, 10); // Build a SweepCleanablePool\n\npublic void myMethod() {\n    final Vector vector = this.pool.get(); // Get free object instance\n\n    this.pool.cleanAll(); // Clean all object instances\n}\n````\n\n````java\nprivate final CleanablePool\u003cVector\u003e pool =\n        Pool.\u003cVector\u003enewBuilder().supplier(Vector::new) // Optional object creation supplier\n                .cleaner(Vector::reset) // Optional cleaner for after use\n                .concurrency(PoolConcurrency.SYNCHRONIZED) // Pool concurrency level\n                .build(Vector.class, 10); // Build a CleanablePool\n\npublic void myMethod() {\n    try (final Cleanable\u003cVector\u003e cleanable = this.pool.get()) {\n        final Vector vector = cleanable.value(); // Get free object instance\n    } // Clean automatically by try-with-resource\n}\n````\n\n### What Concurrency Level to choose?\n\nThe library offers three levels of concurrency control:\n\n- **NOT_CONCURRENT**: No synchronization, suitable for single-threaded use cases.\n- **SYNCHRONIZED**: Uses Java synchronization mechanisms for thread safety.\n- **LOCK_FREE**: High-performance, non-blocking pool operations designed for highly concurrent environments.\n\n### What Pool type to choose?\n\nThe library offers two pool types:\n\n- **CleanablePool**: Offers fine control over object cleaning, where individual objects can be cleaned as needed.\n  Particularly useful when the pool is used at very different times.\n- **SweepCleanablePool**: Allows you to get an instance more easily, but there is no way to clean up a specific\n  instance. It only allows you to clean up everything at once. This lack of flexibility allows for greatly increased\n  performance. Faster but not suitable for all scenarios.\n\n## 📄 License\n\nThis project is under the MIT License, offering the freedom to use, modify, and distribute the software. See\nthe [LICENSE](../LICENSE) file for more details.\n\n## 🔌 Contributing\n\nContributions are welcome! Feel free to open issues or submit pull requests to improve the library.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyvanmazy%2Fnomoreinstance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyvanmazy%2Fnomoreinstance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyvanmazy%2Fnomoreinstance/lists"}