devel/base64 0.5.2 FreeBSD
Fast Base64 stream encoder/decoder in C99, with SIMD acceleration
- System
- FreeBSD
- Repository
- FreeBSD ports
- Maintainer
- [email protected]
- License
- BSD2CLAUSE
- Categories
- devel
- Package size
- 21.1 KiB, 46.6 KiB installed
Description
This is an implementation of a base64 stream encoding/decoding library in C99 with SIMD (AVX2, AVX512, NEON, AArch64/NEON, SSSE3, SSE4.1, SSE4.2, AVX) and OpenMP acceleration. It also contains wrapper functions to encode/decode simple length-delimited strings. This library aims to be:
- FAST;
- easy to use;
- elegant.
On x86, the library does runtime feature detection. The first time it's called, the library will determine the appropriate encoding/decoding routines for the machine. It then remembers them for the lifetime of the program. If your processor supports AVX2, SSSE3, SSE4.1, SSE4.2 or AVX instructions, the library will pick an optimized codec that lets it encode/decode 12 or 24 bytes at a time, which gives a speedup of four or more times compared to the "plain" bytewise codec.
AVX512 support is only for encoding at present, utilizing the AVX512 VL and VBMI instructions. Decoding part reused AVX2 implementations. For CPUs later than Cannonlake (manufactured in 2018) supports these instructions.
NEON support is hardcoded to on or off at compile time, because portable runtime feature detection is unavailable on ARM.
Even if your processor does not support SIMD instructions, this is a very fast library. The fallback routine can process 32 or 64 bits of input in one round, depending on your processor's word width, which still makes it significantly faster than naive bytewise implementations. On some 64-bit machines, the 64-bit routines even outperform the SSSE3 ones.
Install
Binary package:
pkg install libbase64
From the ports tree:
cd /usr/ports/devel/base64/ && make install clean
To depend on this port in another port's Makefile:
RUN_DEPENDS= libbase64>0:devel/base64
LIB_DEPENDS= libbase64.so:devel/base64
Packages
The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.
| Repository | aarch64 | amd64 | armv6 | armv7 | i386 |
|---|---|---|---|---|---|
| FreeBSD:14:latest | 0.5.2 | 0.5.2 | - | - | 0.5.2 |
| FreeBSD:14:quarterly | 0.5.2 | 0.5.2 | n/a | - | 0.5.2 |
| FreeBSD:15:latest | 0.5.2 | 0.5.2 | n/a | - | - |
| FreeBSD:15:quarterly | 0.5.2 | 0.5.2 | n/a | n/a | n/a |
| FreeBSD:16:latest | 0.5.2 | 0.5.2 | n/a | n/a | n/a |
| FreeBSD:16:quarterly | n/a | n/a | n/a | n/a | n/a |
Dependencies
The Makefile names none itself; they come from USES and USE_*.
The full lists below include those, and their dependencies in turn.
Build dependencies 15
Required by 25
- comms/py-spsdk
- databases/py-sqlglot-mypy
- databases/py-sqlglotc
- devel/py-hatch-mypyc
- devel/py-isort
- devel/py-librt
- devel/py-mypy
- devel/py-prospector
- devel/py-pytest-mypy
- devel/py-pytest-mypy-plugins
- devel/py-pytest-mypy-testing
- devel/py-pytokens
- devel/thonny
- math/py-or-tools
- misc/py-lightning-utilities
- misc/py-pytorch-lightning
- misc/py-torchmetrics
- net/py-saltyrtc.server
- science/py-kliff
- textproc/py-docling-eval
- textproc/py-docling-metrics-layout
- textproc/py-docstring-to-markdown
- textproc/py-pyls-spyder
- textproc/py-python-lsp-black
- textproc/py-python-lsp-server
Configuration
No options to configure.
- USES
- cmake:testing
- Service scripts
- none
Files
pkg-plist 9
- bin/base64
- include/libbase64.h
- lib/cmake/base64/base64-config-version.cmake
- lib/cmake/base64/base64-config.cmake
- lib/cmake/base64/base64-targets-.cmake
- lib/cmake/base64/base64-targets.cmake
- lib/libbase64.so
- lib/libbase64.so.0
- lib/libbase64.so.
distinfo 1
| File | Size | SHA256 |
|---|---|---|
| aklomp-base64-v0.5.2_GH0.tar.gz | 104531 | 723a0f9f4cf44cf79e97bcc315ec8f85e52eb104c8882942c3f2fba95acc080d |
Commit history 0
No commits in the history this site was built from.