Eric Coissac 78e7933c6f 4.4.26: Static Linux Builds, Memory-Aware Batching & Cross-Compilation Fixes
This release includes critical build system improvements and enhanced batching capabilities for more predictable resource usage.

### Cross-Compilation & Static Builds
- Fixed cross-compilation for Linux by introducing architecture-specific `CGO_CFLAGS` (x86_64-linux-gnu and aarch64-linux-gnu), ensuring correct header resolution during static linking.
- Enabled fully static Linux binaries using musl, producing self-contained executables with no external runtime dependencies.

### Memory-Aware Batching (New Feature)
- Added `--batch-mem` CLI option to control batching based on estimated memory usage (e.g., 128K, 64M, 1G), in addition to size-based limits.
- Introduced configurable min/max batch sizes and memory thresholds, with conservative memory estimation per sequence to avoid over-allocation.
- Implemented intelligent flushing logic that triggers when *either* byte or record count limits are exceeded, ensuring predictable memory behavior.
- Improved garbage collection after large batch discards to reduce memory pressure during large-scale processing.

### Build & Toolchain Improvements
- Updated Go toolchain to 1.26.1 and bumped key dependencies (e.g., golang.org/x/net v0.38.0).
- Enhanced build error reporting: logs are now displayed before cleanup on failure.
- Fixed Makefile quoting for `LDFLAGS` containing spaces.
- Updated install script to properly configure GOROOT, GOPATH, and GOTOOLCHAIN, with added progress feedback for downloads.

All batching behavior is backward-compatible and uses sensible defaults (128 MB memory, min: 1 record, max: 2000 records) to ensure smooth upgrades.
2026-03-13 19:30:37 +01:00
2024-06-07 09:04:37 +02:00
2023-12-05 15:28:29 +01:00
2023-02-02 23:47:22 +01:00
2025-06-04 09:48:10 +02:00
2023-02-02 23:36:13 +01:00
2022-01-14 15:22:10 +01:00

obitools V4

OBITools V4 is the new version of OBITools. They are closer to OBITools2 than to OBITools3. They are implemented in GO and are tens of times faster than OBITools2.

The git for OBITools4 is available at :

https://github.com/metabarcoding/obitools4

Installing OBITools V4

An installation script that compiles the new OBITools on your Unix-like system is available online. The easiest way to run it is to copy and paste the following command into your terminal

curl -L https://raw.githubusercontent.com/metabarcoding/obitools4/master/install_obitools.sh | bash

By default, the script installs the latest version of OBITools commands and other associated files into the /usr/local directory.

Installation Options

The installation script offers several options:

-l, --list List all available versions and exit.

-v, --version Install a specific version (e.g., -v 4.4.3). By default, the latest version is installed.

-i, --install-dir Directory where obitools are installed (as example use /usr/local not /usr/local/bin).

-p, --obitools-prefix Prefix added to the obitools command names if you want to have several versions of obitools at the same time on your system (as example -p g will produce gobigrep command instead of obigrep).

-j, --jobs Number of parallel jobs used for compilation (default: 1). Increase this value to speed up compilation on multi-core systems (e.g., -j 4).

Examples

List all available versions:

curl -L https://raw.githubusercontent.com/metabarcoding/obitools4/master/install_obitools.sh | bash -s -- --list

Install a specific version:

curl -L https://raw.githubusercontent.com/metabarcoding/obitools4/master/install_obitools.sh | bash -s -- --version 4.4.3

Install in a custom directory with command prefix:

curl -L https://raw.githubusercontent.com/metabarcoding/obitools4/master/install_obitools.sh | \
      bash -s -- --install-dir test_install --obitools-prefix k

In this last example, the binaries will be installed in the test_install directory and all command names will be prefixed with the letter k. Thus, obigrep will be named kobigrep.

Note on Version Compatibility

The names of the commands in the new OBITools4 are mostly identical to those in OBITools2. Therefore, installing the new OBITools may hide or delete the old ones. If you want both versions to be available on your system, use the --install-dir and --obitools-prefix options as shown above.

Continuing the analysis...

Before with OBITools2 to continue the analysis, obitab was used as last command to produce a tab delimited file that was loadable in R or in any spreadsheet. The generated file was huge and required to load the full dataset in memory to be produced. Hereby OBITools4 proposes to substitute the obitab usage by the ROBIFastRead R module.

Description
No description provided
Readme 190 MiB
Languages
Go 75%
HTML 11.4%
Shell 5.6%
C 4%
JavaScript 3.3%
Other 0.6%