Releases: Softmotions/iowow
Releases · Softmotions/iowow
v.1.4.18
- Added iwp_random_fill() (iwp.h)
- Added convenient numeric conversion functions (iwconv.h)
- Chore: iwp_{lock,unlock} fcnt replaced by more convenient and reliable flock()
- Added iwxstr_printf_alloc() (iwxstr.h)
- Copyright updated
- Added new iwjsreg.h module - simple JSON key-value file store with atomic
updates. - Allowed to construct JBL_NODE without IWPOOL ini this case node data will
be allocated by malloc and should be freed by visitor.
v1.4.17
- Added void iwulist_reset(IWULIST *list) (iwarr.h)
- Added experimental jbn_from_js() (iwjson.h)
- Fixed C++ compilation errors https://github.com/Softmotions/ejdb/issues/381
- Fixed Correct UCS-16 surrogate pair start code point. #51
- Added iwchars.h replacing some ctype.h functions.
- Added simple refcounting container iwrefs.h
- Fixed incorrect parsing of empty JSON keys.
- Added jbn_as_xml() (iwjson.h)
- Added jbn_get() (iwjson.h)
- Added IW_ERROR_OPERATION_TIMEOUT common error code.
- Removed support of legacy iwkv v1 data file format.
- Fixed incorrect read of memory bytes (reported by valgrind)
- Fixed windows build
- Added ref counting feature to iwpool (iwpool.h)
v1.4.16: .
- Fixed behavior of iwp_tmpdir() accourding to #47
- Fixed Incorrect serialization of INT64_MIN by iwitoa() #48 (iwconv.h)
- Added iwxstr_insert() (iwxstr.h)
- ~8% IO performance improvements due to use of MADV_RANDOM
- Fixed Github Vulnerability Report GHSL-2022-066
- Added additional IW_ERROR_XX codes (iwlog.h)
- Added VERBOSE log level (iwlog.h)
- Added iwhmap_put_str() (iwhmap.h)
- Added iwulist_remove_first_by(), iwulist_find_first() (iwarr.h)
- Added iwxstr_new_printf() (iwxstr.h)
- Reduced iwkv code complexity. Removed in-memory db cache since benchmarks shows only minor perf imprivements with cache.
- Fixed many of UB errors (eg: misaligned access)
- Removed dependency on kbtree.h replaced with iwavl.h
- Added json module (migrated from ejdb) (iwjson.h, iwbinn.h)
- Added platform neutral iwp_basename() and iwp_dirname() (iwp.h)
- Added iwu_file_read_as_buf_len() (iwutils.h)
- Added IW_NORET (basedefs.h)
- iwxstr_destroy_keep_ptr() now returns pointer to underlying buffer
- IWHMAP can operate in LRU cache mode (iwhmap.h)
- Added .ini file parsing utility module (iwini.h)
- Added iw_cond_timed_wait_ms() (iwth.h)
- Added iwstw_set_on_task_discard(), iwstw_schedule_only() (iwstw.h)
- Fixed iwp_exec_path() on FreeBSD sinceprocfs(5) is not mounted by default in FreeBSD.
- iwp_exec_path() implemented for FreeBSD & Macos
- Added
int64_t iwatoi2(const char *str, size_t len)
(iwconv.h) - iwpool_split_xx() now returns const pointer (iwpool.h)
- Fixed iwre() regexp compilation error.
- Added new regexp API implementation (iwre.h) based on https://github.com/jserv/cregex/
- Removed iwsha256() from sources. Use iwnet/beassl for hashing instead.
v1.4.15
v1.4.14
- Used ftruncate() instead of posix_fallocate() due to EINVAL on ZFS (unix.c)
- Enable XOPEN_SOURCE only for Linux
- Fixed incorrect selection of
strerror_r
for musl builds. - Set appropriate _XOPEN_SOURCE=700 level for
nftw
(unix.c) - iwxstr_printf() now conforms to stdlib printf function (iwxstr.h)
- Moved some useful defs from iwutil.h into basedefs.h
- Fixed iwre_match() function signatute allowing
const char* input
(iwre.h) - Added lightweight regexp implementation (iwre.h)
- Added
size_t iwxstr_asize(IWXSTR*)
(iwxstr.h) - Added locale independed strtod: iwstrtod() (iwconv.h)
v1.4.13
- Fixed SEGV in iwkv_cursor_open with zero-length key and IWDB_VNUM64_KEYS (#42)
- Fixed Heap UAF in iwkv_close after invoking iwkv_db_set_meta on a database (#41)
- Added
iwxstr_wrap()
(iwxstr.h) - Added
RCT()
checker for pthread routines (basedefs.h) - Added iwbin2hex() (iwconv.h)
- iwxstr_clear() sets value of intgernal string buffer to zero (iwxstr.h)
- Added user data store capability to iwxstr (iwxstr.h)
- Added iwpool_strdup2(), iwpool_strndup2() (iwpool.h)
- Added iwp_set_current_thread_name() (iwp.h)
- Added RCENO define (basedefs.h)
- Thread poll, single thread worker fixes
- Added IW_MIN, IW_MAX, IW_XSTR defines
v1.4.12
- Added IW_ERROR_UNSUPPORTED error code
- Added IW_ALLOC attribute((malloc)) optimization
- Added ring buffer implementation (iwrb.h)
- Added
queue_blocking
argumentiwstw_start()
(iwstw.h) - Minor changes in iwlog.h api
memcpy
replaced bymemmove
for overlaping cases (iwarr.c)
v1.4.11
- Fixed typo (qsort_r => sort_r) (iwarr.c)
- Added simple threads pool implementation (iwtp.h)
- Added IW_ERROR_NOT_ALLOWED error code (iwlog.h)
- Added RCR() error checking macro (basedefs.h)
- Added iwlist_sort(), iwulist_sort() (iwarr.h)
- Added iwstw_schedule_empty_only() (iwstw.h)
- Added iwstw_queue_size() (iwstw.h)
- Set O_CLOEXEC flag on all file open() calls
- Added IW_ERROR_UNEXPECTED_RESPONSE error code (iwlog.h)
- Added iwxstr_set_size(), iwxstr_destroy_keep_ptr() (iwxstr.h)
- Added iwlist_at2() (iwarr.h)
- Added handy ZRET definition (basedefs.h)
- Added handy ZGO definition (basedefs.h)
- Project code reformatted using uncrustify
- Updated copyright headers
- Fixed build errors on macOS
- Removed dependency on glibc specific features
- Added new iwxstr_pop() (iwxstr.h)
v1.4.10
v1.4.9
- Code review of iwkv cache keys comparison, related issue: https://github.com/Softmotions/ejdb/issues/291
- Added
bool iwu_uuid_valid(const char *uuid)
(iwuuid.h)