changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > core / lisp/ffi/zstd/pkg.lisp

changeset 155: b4bb3c52bc18
parent: 2d1fe1d7b738
child: 757b91ddcb2a
author: ellis <ellis@rwest.io>
date: Sat, 30 Dec 2023 23:53:04 -0500
permissions: -rw-r--r--
description: moved external ffi libs
1 ;;; ffi/zstd/pkg.lisp --- ZSTD FFI
2 
3 ;; from zstd.h:
4 #|
5  Introduction
6 
7  zstd, short for Zstandard, is a fast lossless compression algorithm, targeting
8  real-time compression scenarios at zlib-level and better compression ratios.
9  The zstd compression library provides in-memory compression and decompression
10  functions.
11 
12  The library supports regular compression levels from 1 up to ZSTD_maxCLevel(),
13  which is currently 22. Levels >= 20, labeled `--ultra`, should be used with
14  caution, as they require more memory. The library also offers negative
15  compression levels, which extend the range of speed vs. ratio preferences.
16  The lower the level, the faster the speed (at the cost of compression).
17 
18  Compression can be done in:
19  - a single step (described as Simple API)
20  - a single step, reusing a context (described as Explicit context)
21  - unbounded multiple steps (described as Streaming compression)
22 
23  The compression ratio achievable on small data can be highly improved using
24  a dictionary. Dictionary compression can be performed in:
25  - a single step (described as Simple dictionary API)
26  - a single step, reusing a dictionary (described as Bulk-processing
27  dictionary API)
28 
29  Advanced experimental functions can be accessed using
30  `#define ZSTD_STATIC_LINKING_ONLY` before including zstd.h.
31 
32  Advanced experimental APIs should never be used with a dynamically-linked
33  library. They are not "stable"; their definitions or signatures may change in
34  the future. Only static linking is allowed.
35 |#
36 
37 ;;; Code:
38 (defpackage :zstd
39  (:use :cl :std)
40  (:nicknames :zstd))
41 
42 (in-package :zstd)
43 
44 (define-alien-loader "zstd" t)