fastutil/README.md

47 lines
2 KiB
Markdown
Raw Permalink Normal View History

2017-08-09 14:32:35 +00:00
# Welcome to fastutil
2022-02-10 13:45:44 +00:00
[fastutil](http://fastutil.di.unimi.it/) extends the Java Collections
Framework by providing type-specific maps, sets, lists, and queues with a
small memory footprint and fast access and insertion; it provides also big
(64-bit) arrays, sets, and lists, sorting algorithms, fast, practical I/O
classes for binary and text files, and facilities for memory mapping large
files.
2021-03-29 07:18:35 +00:00
2021-09-07 08:45:50 +00:00
Since version 8.5.5, fastutil is split into two jars for convenience:
2021-03-29 07:18:35 +00:00
- `fastutil-core.jar` contains data structures based on integers, longs,
2021-03-29 07:20:08 +00:00
doubles, and objects;
2021-03-29 07:18:35 +00:00
2021-09-07 08:45:50 +00:00
- `fastutil.jar` is the classic distribution, containing all classes.
2021-03-29 07:18:35 +00:00
2021-09-07 08:45:50 +00:00
Note that core classes are duplicated in the standard jar, so if you are
depending on both (for example, because of transitive dependencies) you
should exclude the core jar.
2021-03-29 07:18:35 +00:00
2021-09-07 08:45:50 +00:00
Previous split versions would provide different classes in different jars,
but managing sensibly dependencies turned out to be impossible.
2021-03-29 08:14:59 +00:00
2021-03-29 07:18:35 +00:00
You can also create a small, customized fastutil jar (which you can put in
2021-03-29 07:20:08 +00:00
your repo, local maven repo, etc.) using the `find-deps.sh` shell script.
It has mild prerequisites, as only the `jdeps` tool is required (bundled
with JDK 8). It can be used to identify all fastutil classes your project
uses and build a minimized jar only containing the necessary classes.
2017-08-09 14:32:35 +00:00
## Building
2021-04-09 16:23:16 +00:00
First, you have to `make sources` to get the actual Java sources.
After that, `ant jar` will generate a single jar file; `ant javadoc` will
generate the API documentation; `ant junit` will run the unit tests.
2021-03-29 07:22:03 +00:00
If you want to obtain the three jars above, you have to run the script
`split.sh`, and then `ant osgi-rest`.
2017-08-09 14:32:35 +00:00
The Java sources are generated using a C preprocessor. The `gencsource.sh`
script reads in a driver file, that is, a Java source that uses some
preprocessor-defined symbols and some conditional compilation, and produces a
(fake) C source, which includes the driver code and some definitions that
customize the environment.
2002-06-01 08:14:35 +00:00
2015-05-11 17:02:32 +00:00
* seba (<mailto:sebastiano.vigna@unimi.it>)
2020-10-28 17:44:07 +00:00
* https://groups.google.com/g/fastutil