rizin/librz/util
Florian Märkl ff4d6608c0
Add rz_bv_append_inplace() (#6592)
Warning: this also swaps the arguments of the old rz_bv_append() to be
consistend with the new inplace variant.
The reason why the inplace function has the low as the first operand is
that it can be more efficient to append to an existing vector inplace
than to prepend to it. Then, the first argument is being used as the
in-out one in all other inplace functions.
2026-07-03 23:31:30 +08:00
..
float fix positive zero comparing inequal with negative zero, IEEE754 mandates equality 2026-06-21 03:48:49 +08:00
ht ht_inc: Rename slots to slots_ (#6021) 2026-03-10 22:33:12 +08:00
sdb Fix ISO C23 warnings related the usage of strstr & strchr (#6182) 2026-04-08 22:04:39 +08:00
alloc.c Move rz_mem_alloc() to rz_alloc.h (#3410) 2023-03-01 20:21:26 +08:00
annotated_code.c Move ESIL into its own namespace (#6199) 2026-04-11 16:26:01 +08:00
ascii_table.c Fix RZ_IPI usage on public headers & fix memory leak in the ROP code. (#6171) 2026-04-08 13:37:17 +08:00
asn1.c Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00
asn1_oids.h Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00
asn1_str.c Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00
assert.c Rename RLogLevel to RzLogLevel (#2618) 2022-05-15 22:13:13 +08:00
axml.c Move ESIL into its own namespace (#6199) 2026-04-11 16:26:01 +08:00
axml_resources.h Android Binary XML support (#18545) ##print 2022-06-06 14:35:25 +02:00
base16.c librz/util: base64, base85, base36, base32, base16 support and refactor (#5216) (#5271) 2025-08-17 15:26:25 +08:00
base32.c librz/util: base64, base85, base36, base32, base16 support and refactor (#5216) (#5271) 2025-08-17 15:26:25 +08:00
base36.c librz/util: base64, base85, base36, base32, base16 support and refactor (#5216) (#5271) 2025-08-17 15:26:25 +08:00
base64.c librz/util: base64, base85, base36, base32, base16 support and refactor (#5216) (#5271) 2025-08-17 15:26:25 +08:00
base85.c librz/util: base64, base85, base36, base32, base16 support and refactor (#5216) (#5271) 2025-08-17 15:26:25 +08:00
base91.c
big-gmp.c
big-ssl.c
big.c Remove useless semicolon 2024-03-25 18:36:02 +08:00
bits.c Update contact information of Rot127. (#5522) 2025-11-10 17:15:15 +00:00
bitvector.c Add rz_bv_append_inplace() (#6592) 2026-07-03 23:31:30 +08:00
buf.c Prevent RzBuffer's Oxff_priv from overriding io.0xff (#6371) 2026-05-27 06:18:45 +08:00
buf_bytes.c RzBuffer consistency and make buffer type public (#4666) 2024-10-12 11:27:21 +02:00
buf_file.c RzBuffer consistency and make buffer type public (#4666) 2024-10-12 11:27:21 +02:00
buf_io.c RzBuffer consistency and make buffer type public (#4666) 2024-10-12 11:27:21 +02:00
buf_io_fd.c RzBuffer consistency and make buffer type public (#4666) 2024-10-12 11:27:21 +02:00
buf_mmap.c Prevent RzBuffer's Oxff_priv from overriding io.0xff (#6371) 2026-05-27 06:18:45 +08:00
buf_ref.c
buf_sparse.c Replaced 'assert()' with 'rz_return_val_if_fail()' (#3813) 2023-09-08 10:27:07 +08:00
calc.c
chmod.c Remove global in chmod.c 2024-01-06 23:30:07 +08:00
compression.c Add MediaTek md1img and GFH firmware image parsers (#5974) 2026-06-22 20:25:48 +00:00
debruijn.c Coverity fixes - memory leaks, NULL dereferences (#3339) 2023-02-04 20:01:42 +08:00
ebcdic.c String/Hex-Search 2/9: Improve Unicode support. 2025-02-22 04:12:49 +08:00
event.c Add missing vector foreach macros to clang-format cfg (#4456) 2024-04-22 07:16:46 +08:00
file.c Add pF8 for decoding PKCS8 & add info on /cm (#5647) 2025-12-20 16:28:10 +08:00
getopt.c
graph_algorithm.c refactor: add hashtable-based RzGraph implementation (#6152) 2026-04-08 04:01:40 +08:00
graph_drawable.c librz/util/graph: various improvements 2026-05-16 19:12:01 +08:00
graph_impl.c Graph - (tiny) performance improvements (#6382) 2026-05-31 22:00:25 +00:00
graph_priv.h Graph - (tiny) performance improvements (#6382) 2026-05-31 22:00:25 +00:00
hex.c Fix ISO C23 warnings related the usage of strstr & strchr (#6182) 2026-04-08 22:04:39 +08:00
idpool.c Remove RQueue (#2720) 2022-06-22 22:41:05 +08:00
intervaltree.c
iterator.c refactor: Use HtSP for storing plugins. (#4687) 2024-10-26 16:31:13 +08:00
itv.c librz/util: implement a bounded interval. (#4977) 2025-03-09 15:24:07 +08:00
json_indent.c librz/core/cmd: convert pj to RzShell (#4726) 2024-11-24 10:20:06 +08:00
json_parser.c Rename RzRune to RzCodePoint. (#4860) 2025-01-24 20:39:04 +08:00
lang_byte_array.c Add missing newlines to some RZ_LOG_* calls (#4439) 2024-04-18 00:04:38 +08:00
lib.c Replace strdup with rz_str_dup (#4634) 2024-09-15 19:12:07 +08:00
list.c Implement special compare for bytes and always compare mem-aligned. 2026-06-01 01:45:59 +08:00
log.c Add getter for the current log level. (#5807) 2026-01-23 18:52:45 +00:00
luhn.c
math.c test/bench: add geometric stats to benchmarks (#6403) 2026-05-26 16:15:02 +08:00
mem.c Fix return type description. (#5838) 2026-01-25 13:11:11 +00:00
meson.build test/bench: measure standard deviation for benchmarks (#6390) 2026-05-25 05:08:06 +08:00
name.c Replace strdup with rz_str_dup (#4634) 2024-09-15 19:12:07 +08:00
path.c shell: new arg type RZ_CMD_ARG_TYPE_FOLDER (#5514) 2025-12-10 19:08:38 +08:00
pj.c librz/util/pj: Fix JSON depth limit handling (#6533) 2026-07-02 15:21:36 +08:00
pkcs7.c Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00
pkcs8.c Add pF8 for decoding PKCS8 & add info on /cm (#5647) 2025-12-20 16:28:10 +08:00
print.c Use stdint types for ut64 and friends (#6276) 2026-04-22 21:43:04 +08:00
protobuf.c Ownership and doxygen for rz_protobuf_decode 2022-10-09 08:09:00 +08:00
punycode.c
rbtree.c
README.md librz: add some initial documentation (#3782) 2023-10-13 13:46:19 +08:00
regex.c Fix several leaks. (#5536) 2025-11-19 23:22:56 +08:00
serialize_spaces.c sdb: remove unused cas and expire features (#4487) 2024-05-12 18:27:54 +08:00
set.c Add rz_set_u_take(). (#6137) 2026-04-04 12:04:25 +00:00
signal.c
skiplist.c Add user pointer to RzListComparator (#4204) 2024-02-11 13:28:33 +08:00
skyline.c
spaces.c Replace strdup with rz_str_dup (#4634) 2024-09-15 19:12:07 +08:00
stack.c
str.c librz/util: shared Unicode subscript formatting for bit-vectors and floats (#6418) 2026-05-29 02:02:58 +08:00
str_constpool.c Add extended insert/update methods for HT (#4489) 2024-05-17 18:06:01 +08:00
str_search.c util: extend string search with user-defined printable characters (#6161) 2026-05-01 22:47:14 +08:00
str_trim.c Add pF8 for decoding PKCS8 & add info on /cm (#5647) 2025-12-20 16:28:10 +08:00
strbuf.c librz/util: guard allocation failure paths in string and vector helpers (#6217) 2026-04-12 17:16:24 +08:00
strpool.c
structured_data.c Rewrite of zImage bin parser & new structured data methods (#5893) 2026-02-09 19:00:42 +08:00
structured_data_json.c Convert opex to use RzStructuredData (#5613) 2025-12-16 15:21:44 +08:00
structured_data_yaml.c Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00
subprocess.c librz/util/subprocess: fix inability to automatically run .com executables (#5312) 2025-08-25 12:20:37 +08:00
sys.c Return early from sleep() functions in case of 0 sleep time. (#6429) 2026-06-01 01:47:39 +08:00
syscmd.c Add new implementation of RzConfig (#5820) 2026-05-03 15:34:48 +08:00
table.c Fix memory leaks across arch, core, and util (#6581) 2026-07-02 11:10:03 +08:00
thread.c Add helper to check if a thread terminated. (#5583) 2025-12-08 04:37:01 +08:00
thread.h Fix Illumos/Solaris platform support (#5972) 2026-02-27 13:01:40 +08:00
thread_cond.c Fix deadlock in rz_th_queue_close_when_empty() (#6383) 2026-05-25 09:25:29 +02:00
thread_hash_table.c Add HtSP, HtSS, HtSU, SetS (#4415) 2024-04-16 20:27:48 +08:00
thread_iterators.c Remove rz_list_iter_get_data() (#5900) 2026-02-10 22:03:37 +08:00
thread_lock.c Refactor thread code and add RzThreadQueue (#2683) 2022-06-19 21:07:13 +08:00
thread_pool.c Fix "exeeds" typo (#5760) 2026-01-09 21:26:26 +08:00
thread_queue.c Fix deadlock in rz_th_queue_close_when_empty() (#6383) 2026-05-25 09:25:29 +02:00
thread_ring_buf.c Implement ring buffer (#6081) 2026-04-13 10:15:49 +00:00
thread_sem.c subprocess: Protect proc->ret with a semaphore (#4545) 2024-06-19 18:23:12 +08:00
thread_types.c Remove rz_th_kill, rz_th_kill_free and rz_th_pool_kill (#2790) 2022-07-08 14:54:51 +02:00
time.c Fix Illumos/Solaris platform support (#5972) 2026-02-27 13:01:40 +08:00
tree.c Remove RQueue (#2720) 2022-06-22 22:41:05 +08:00
uleb128.c Check we do not shift more than 63. in [us]leb128 2024-09-08 17:34:55 +08:00
unicode.c Enc: add unicode case mappings (#5956) 2026-03-01 15:06:28 +00:00
unum.c linter: update clang-format installation to version 20 (#5451) 2025-10-12 08:02:03 +08:00
utf8.c Enc: add unicode case mappings (#5956) 2026-03-01 15:06:28 +00:00
utf16.c librz/util: UTF-16/32 to UTF-8 conversion (#5431) 2025-10-05 19:16:53 +08:00
utf32.c librz/util: UTF-16/32 to UTF-8 conversion (#5431) 2025-10-05 19:16:53 +08:00
vector.c librz/util/vector: minor RzVector/RzPVector performance optimizations (#6467) 2026-06-10 00:22:26 +08:00
version.c Remove Global/Static variables in path.c to make it thread safe (#5148) 2025-06-13 21:34:33 +08:00
w32-sys.c
x509.c Fix small mistake on x509 structure. (#5690) 2025-12-27 19:00:27 +08:00
x509.h Extend ASN.1/PKCS7/X.509 to dump structures (#5656) 2025-12-22 09:41:56 +08:00

RzUtil

This library contains all common utilities and functions that are used by other modules in the Rizin framework, like string manipulation, data structures (lists, vectors, trees, etc.), JSON parsing/printing, and others.

What can I expect here?

  • Numbers/math functions
  • Functions likely needed across several other modules
  • Data structures: lists, vectors, trees, graphs, skiplist
  • RzBuffer
  • JSON parsing, JSON printing
  • PKCS7
  • BitVector
  • Functions that are very common and not specific to other modules
  • SDB
  • Floating point number operations
  • OS/Platform-independent abstractions for common operations (e.g. rename a file, create temporary file, etc.)