Simple library to create primitive collections. Using template files to generate them. Project for self teaching.
Go to file
Speiger afdd27648e Updated Changelog and Readme to include Maven Central 2024-04-11 19:11:07 +02:00
.github/workflows Adding coverage to master to make things simpler! 2023-06-15 18:53:08 +02:00
gradle/wrapper Upgraded Gradle to be java19/20 friendly 2023-06-15 18:19:12 +02:00
src Fixed a auto generation bug where iterators wouldn't accept settings 2023-07-04 17:29:32 +02:00
.classpath Changes. 2021-09-28 04:43:04 +02:00
.gitattributes Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
.gitignore Refactor of the Project on Github. 2022-06-14 08:55:40 +02:00
.project Map Tests & BugFixes. 2021-04-22 23:02:04 +02:00
Changelog.md Updated Changelog and Readme to include Maven Central 2024-04-11 19:11:07 +02:00
EXTRAS.md First draft of the 0.8.0 patch. 2022-12-19 16:03:43 +01:00
LICENSE Update LICENSE 2021-12-19 21:19:28 +01:00
ModulSettings.json Collection Module Works now. (Least Configurable for obvious Reasons) 2022-12-07 06:27:47 +01:00
README.md Updated Changelog and Readme to include Maven Central 2024-04-11 19:11:07 +02:00
RuleSheet.md New Content patch getting big progress on base and progress on lists. 2020-11-16 02:55:33 +01:00
SECURITY.md Create SECURITY.md 2024-03-29 22:19:29 +01:00
build.gradle Fixed a few bugs in the maven central script 2024-03-30 05:12:57 +01:00
features.md New Stuff 2022-04-21 17:25:23 +02:00
gradle.properties Fixed a few bugs in the maven central script 2024-03-30 05:12:57 +01:00
gradlew Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
gradlew.bat Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00
jitpack.yml Updated yml Scripts 2022-04-28 19:09:42 +02:00
settings.gradle Removed the double foldering and started some seriouse work. 2020-11-11 21:33:59 +01:00

README.md

build Latest Release Maven Central Version License GitHub commit activity
Unit Tests Coverage codecov Tests Done

Primitive-Collections

This is a Simple Primitive Collections Library aimed to outperform Java's Collection Library and FastUtil.
Both in Performance and Quality of Life Features.

Benchmarks

Benchmarks can be found here: [Charts], [Tables]

Special Features

Here you find a set of features added to Primitive Collections.
These are designed to improve performance or to provide Quality of Life.

Here you also find features that can be used when you compile the library for yourself.
These features are not used by default to have a wider range of compat, or require self compilation.
Such as pruning classes that are not needed in your code.

Main Features:

  • ArrayLists / LinkedLists / CopyOnWriteLists
  • HashSets/Maps (Linked & HashControl)
  • TreeSets/Maps (RB & AVL)
  • EnumMaps
  • Immutable Maps/Lists/Sets
  • ConcurrentHashMaps
  • Priority Queues
  • Streams & Functional Queries
  • Split/Iterators
  • Pairs
  • Unary/Functions
  • Suppliers
  • Bi/Consumers
  • AsyncBuilders

Notes about Versions

Any 0.x.0 version (Minor) can be reason for massive changes including API.
To ensure that problems can be dealt with even if it is breaking the current API.

How to install

Using Jitpack Gradle

repositories {
    maven {
        url = "https://jitpack.io"
    }
}
dependencies {
	implementation 'com.github.Speiger:Primitive-Collections:0.9.0'
}

Using Maven Central

dependencies {
	implementation 'io.github.speiger:Primitive-Collections:0.9.0'
}

SourceCode

The generated Sourcecode can be automatically build,
but if you want to just browse around in it.
Check out the Debug Branch, which has the entire up to date code.

Contributing

If you want to contribute.
This project is created using gradle and java and my Template Library only. Nothing extra.
If you setup gradle the library will be downloaded automatically.

Where is everything stored?

  • Variables and ClassNames are define here
  • Templates are stored here
  • Tests can be found here

Please if you want to contribute follow the Rule-Sheet. It keeps everything in line.

How to Build

The SourceCode can be generated via:

/gradlew.bat generateSource      

to generate SourceCode and build the jar:

/gradlew.bat build