Skip to content

Commit fe4531c

Browse files
Anjay Lite 1.0.0
BREAKING CHANGES - Implemented new Time API with distinct clock types: `anj_time_real_t`, `anj_time_monotonic_t`, `anj_time_duration_t`. - Renamed `anj_dm_res_t::operation` field to `anj_dm_res_t::kind`. - Renamed `anj_dm_res_operation_t` type to `anj_dm_res_kind_t`. - Moved `anj/log/log.h` header to `anj/log.h`. - Removed `anj_core_ongoing_operation` API. - Removed `anj_dm_bootstrap_cleanup` API. Bugfixes - Fixed broken README.md link in integrations documentation
1 parent 528cd01 commit fe4531c

File tree

233 files changed

+13340
-7313
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+13340
-7313
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ libanj.a
3434
/anjay_lite_bc_initialization
3535
/anjay_lite_bc_mandatory_objects
3636
/anjay_lite_bc_send
37+
/anjay_lite_bc_security
3738
/anjay_lite_at_bootstrap
39+
/anjay_lite_at_persistence
3840
/anjay_lite_firmware_update
3941
/dm_tests
4042
/io_tests

CHANGELOG.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,36 @@
11
# Changelog
22

3+
## Anjay Lite 1.0.0 (October 20th, 2025)
4+
5+
### BREAKING CHANGES
6+
- Implemented new Time API with distinct clock types:
7+
`anj_time_real_t`, `anj_time_monotonic_t`, `anj_time_duration_t`.
8+
- Renamed `anj_dm_res_t::operation` field to `anj_dm_res_t::kind`.
9+
- Renamed `anj_dm_res_operation_t` type to `anj_dm_res_kind_t`.
10+
- Moved `anj/log/log.h` header to `anj/log.h`.
11+
- Removed `anj_core_ongoing_operation` API.
12+
- Removed `anj_dm_bootstrap_cleanup` API.
13+
14+
### Bugfixes
15+
- Fixed broken README.md link in integrations documentation
16+
317
## Anjay Lite 1.0.0-beta.2 (August 27th, 2025)
418

519
### BREAKING CHANGES
620

721
- Changed error codes defined in the `anj_net_api.h` to positive values. Returning any positive values from the
822
user Network API implementation, other than `ANJ_NET_E*`, is prohibited.
23+
- New mandatory `anj_net_queue_mode_rx_off_t` API with example per-binding
24+
implementations, including `anj_udp_queue_mode_rx_off()` and
25+
`anj_dtls_queue_mode_rx_off()` were added.
26+
- Removed `anj_net_reuse_last_port_t` with example per-binding implementations.
27+
- Changed `anj_dm_transaction_end_t` last argument.
928

1029
### Features
1130

1231
- CoAP Downloader module for large file transfers from CoAP servers, supporting FOTA Pull scenarios.
1332
- Added support for Write-Composite operation.
33+
- Persistence module and mechanism for Security and Server objects store/restore.
1434

1535
### Improvements
1636

@@ -20,7 +40,7 @@
2040
examples.
2141
- Introduce Python tools for downloading object XMLs from OMA registry - `tools/lwm2m_object_registry.py` and generating
2242
object stubs - `tools/anjay_codegen.py`
23-
- Implemented responses caching
43+
- Implemented responses caching.
2444
- If no confirmable notification is sent for 24 hours, the next notification sent will be confirmable.
2545
- The library now follows the include pattern recommendations from Include What You Use (IWYU) version 0.24
2646
compatible with clang 20.

CMakeLists.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function(add_standalone_target NAME PATH WITH_VALGRIND)
5353
-DCMAKE_EXE_LINKER_FLAGS="${unescaped_exe_linker_flags}"
5454
${COMMAND_LINE_FLAGS}
5555
COMMAND ${CMAKE_COMMAND} --build . --target ${NAME} -- -j${NPROC}
56-
WORKING_DIRECTORY "${workdir}"
56+
WORKING_DIRECTORY "${workdir}"
5757
POST_BUILD)
5858

5959
if(WITH_VALGRIND AND VALGRIND_EXECUTABLE)
@@ -82,28 +82,30 @@ add_standalone_target(coap_tests tests/anj/coap ON)
8282
add_standalone_target(net_tests tests/anj/net ON)
8383
add_standalone_target(core_tests tests/anj/core ON)
8484
add_standalone_target(downloader_tests tests/anj/downloader ON)
85+
add_standalone_target(time_api_tests tests/anj/time ON)
86+
add_standalone_target(log_tests tests/anj/log ON)
8587

8688
# examples
8789
add_standalone_target(anjay_lite_firmware_update examples/tutorial/firmware-update OFF)
8890
add_standalone_target(anjay_lite_firmware_update_pull examples/tutorial/firmware-update-coap-downloader OFF)
91+
add_standalone_target(anjay_lite_secure_firmware_update_pull examples/tutorial/firmware-update-coaps-downloader OFF)
8992

9093
add_standalone_target(anjay_lite_bc_initialization examples/tutorial/BC-Initialization OFF)
9194
add_standalone_target(anjay_lite_bc_mandatory_objects examples/tutorial/BC-MandatoryObjects OFF)
95+
add_standalone_target(anjay_lite_bc_security examples/tutorial/BC-Security OFF)
9296
add_standalone_target(anjay_lite_bc_object_impl examples/tutorial/BC-BasicObjectImplementation OFF)
9397
add_standalone_target(anjay_lite_bc_notifications examples/tutorial/BC-Notifications OFF)
9498
add_standalone_target(anjay_lite_bc_send examples/tutorial/BC-Send OFF)
9599

96100
add_standalone_target(anjay_lite_at_bootstrap examples/tutorial/AT-Bootstrap OFF)
101+
add_standalone_target(anjay_lite_at_persistence examples/tutorial/AT-Persistence OFF)
97102
add_standalone_target(anjay_lite_at_queue_mode examples/tutorial/AT-QueueMode OFF)
98103
add_standalone_target(anjay_lite_at_multi_instance_object examples/tutorial/AT-MultiInstanceObject OFF)
99104
add_standalone_target(anjay_lite_at_multi_instance_object_dynamic examples/tutorial/AT-MultiInstanceObjectDynamic OFF)
100105
add_standalone_target(anjay_lite_at_multi_instance_resource examples/tutorial/AT-MultiInstanceResource OFF)
101106
add_standalone_target(anjay_lite_at_multi_instance_resource_dynamic examples/tutorial/AT-MultiInstanceResourceDynamic OFF)
102107

103108
add_standalone_target(anjay_lite_minimal_network_api examples/custom-network/minimal OFF)
104-
add_standalone_target(anjay_lite_reuse_port examples/custom-network/reuse-port OFF)
105-
106-
add_standalone_target(anjay_lite_mbedtls_build examples/tutorial/mbedtls-build OFF)
107109

108110
# Sphinx and doxygen documentation
109111
add_subdirectory(doc)
@@ -119,4 +121,4 @@ add_standalone_target(codegen_add_object_tests tests/codegen/add_object OFF)
119121
add_custom_target(init_header_check
120122
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/tests/init_header_check/run_check.cmake"
121123
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
122-
)
124+
)

Doxyfile

Lines changed: 16 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ FULL_PATH_NAMES = YES
184184
# will be relative from the directory where doxygen is started.
185185
# This tag requires that the tag FULL_PATH_NAMES is set to YES.
186186

187-
STRIP_FROM_PATH =
187+
STRIP_FROM_PATH = doc/build/anj
188188

189189
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
190190
# path mentioned in the documentation of a class, which tells the reader which
@@ -901,7 +901,7 @@ WARN_IF_UNDOC_ENUM_VAL = NO
901901
# Possible values are: NO, YES, FAIL_ON_WARNINGS and FAIL_ON_WARNINGS_PRINT.
902902
# The default value is: NO.
903903

904-
WARN_AS_ERROR = NO
904+
WARN_AS_ERROR = FAIL_ON_WARNINGS
905905

906906
# The WARN_FORMAT tag determines the format of the warning messages that doxygen
907907
# can produce. The string should contain the $file, $line, and $text tags, which
@@ -944,7 +944,7 @@ WARN_LOGFILE =
944944
# Note: If this tag is empty the current directory is searched.
945945

946946
INPUT = include_public/anj \
947-
doc/build/anj_config.h
947+
doc/build/anj
948948

949949
# This tag can be used to specify the character encoding of the source files
950950
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -2371,7 +2371,7 @@ SEARCH_INCLUDES = YES
23712371
# RECURSIVE has no effect here.
23722372
# This tag requires that the tag SEARCH_INCLUDES is set to YES.
23732373

2374-
INCLUDE_PATH =
2374+
INCLUDE_PATH = include_public doc/build
23752375

23762376
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
23772377
# patterns (like *.h and *.hpp) to filter out the header-files in the
@@ -2389,74 +2389,7 @@ INCLUDE_FILE_PATTERNS =
23892389
# recursively expanded use the := operator instead of the = operator.
23902390
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
23912391

2392-
PREDEFINED = ANJ_IN_MSG_BUFFER_SIZE \
2393-
ANJ_OUT_MSG_BUFFER_SIZE \
2394-
ANJ_OUT_PAYLOAD_BUFFER_SIZE \
2395-
ANJ_DM_MAX_OBJECTS_NUMBER \
2396-
ANJ_WITH_COMPOSITE_OPERATIONS \
2397-
ANJ_DM_MAX_COMP_READ_ENTRIES \
2398-
ANJ_WITH_DEFAULT_DEVICE_OBJ \
2399-
ANJ_WITH_DEFAULT_SECURITY_OBJ \
2400-
ANJ_SEC_OBJ_MAX_PUBLIC_KEY_OR_IDENTITY_SIZE \
2401-
ANJ_SEC_OBJ_MAX_SERVER_PUBLIC_KEY_SIZE \
2402-
ANJ_SEC_OBJ_MAX_SECRET_KEY_SIZE \
2403-
ANJ_WITH_DEFAULT_SERVER_OBJ \
2404-
ANJ_WITH_DEFAULT_FOTA_OBJ \
2405-
ANJ_FOTA_WITH_PULL_METHOD \
2406-
ANJ_FOTA_WITH_PUSH_METHOD \
2407-
ANJ_FOTA_WITH_COAP \
2408-
ANJ_FOTA_WITH_COAPS \
2409-
ANJ_FOTA_WITH_HTTP \
2410-
ANJ_FOTA_WITH_HTTPS \
2411-
ANJ_FOTA_WITH_COAP_TCP \
2412-
ANJ_FOTA_WITH_COAPS_TCP \
2413-
ANJ_WITH_OBSERVE \
2414-
ANJ_WITH_OBSERVE_COMPOSITE \
2415-
ANJ_OBSERVE_MAX_OBSERVATIONS_NUMBER \
2416-
ANJ_OBSERVE_MAX_WRITE_ATTRIBUTES_NUMBER \
2417-
ANJ_WITH_BOOTSTRAP \
2418-
ANJ_WITH_BOOTSTRAP_DISCOVER \
2419-
ANJ_WITH_DISCOVER \
2420-
ANJ_WITH_DISCOVER_ATTR \
2421-
ANJ_WITH_LWM2M_SEND \
2422-
ANJ_LWM2M_SEND_QUEUE_SIZE \
2423-
ANJ_WITH_TIME_POSIX_COMPAT \
2424-
ANJ_WITH_SOCKET_POSIX_COMPAT \
2425-
ANJ_NET_WITH_IPV4 \
2426-
ANJ_NET_WITH_IPV6 \
2427-
ANJ_NET_WITH_UDP \
2428-
ANJ_NET_WITH_TCP \
2429-
ANJ_WITH_EXTERNAL_DATA \
2430-
ANJ_WITH_CBOR \
2431-
ANJ_WITH_CBOR_DECODE_DECIMAL_FRACTIONS \
2432-
ANJ_WITH_CBOR_DECODE_HALF_FLOAT \
2433-
ANJ_WITH_CBOR_DECODE_INDEFINITE_BYTES \
2434-
ANJ_WITH_CBOR_DECODE_STRING_TIME \
2435-
ANJ_WITH_LWM2M_CBOR \
2436-
ANJ_WITH_SENML_CBOR \
2437-
ANJ_WITH_PLAINTEXT \
2438-
ANJ_WITH_OPAQUE \
2439-
ANJ_WITH_TLV \
2440-
ANJ_COAP_WITH_UDP \
2441-
ANJ_COAP_WITH_TCP \
2442-
ANJ_COAP_MAX_OPTIONS_NUMBER \
2443-
ANJ_COAP_MAX_ATTR_OPTION_SIZE \
2444-
ANJ_COAP_MAX_LOCATION_PATHS_NUMBER \
2445-
ANJ_COAP_MAX_LOCATION_PATH_SIZE \
2446-
ANJ_LOG_FULL \
2447-
ANJ_LOG_ALT_IMPL_HEADER \
2448-
ANJ_LOG_FORMATTER_PRINTF \
2449-
ANJ_LOG_FORMATTER_BUF_SIZE \
2450-
ANJ_LOG_HANDLER_OUTPUT_STDERR \
2451-
ANJ_LOG_HANDLER_OUTPUT_ALT \
2452-
ANJ_LOG_STRIP_CONSTANTS \
2453-
ANJ_LOG_DEBUG_FORMAT_CONSTRAINTS_CHECK \
2454-
ANJ_LOG_LEVEL_DEFAULT \
2455-
ANJ_LOG_FILTERING_CONFIG_HEADER \
2456-
ANJ_WITH_LWM2M12 \
2457-
ANJ_WITH_CUSTOM_CONVERSION_FUNCTIONS \
2458-
ANJ_PLATFORM_BIG_ENDIAN \
2459-
ANJ_LOG_ENABLED
2392+
PREDEFINED =
24602393

24612394
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
24622395
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2888,6 +2821,14 @@ MSCGEN_TOOL =
28882821

28892822
MSCFILE_DIRS =
28902823

2891-
ALIASES += anj_internal_api_do_not_use="**INTERNAL API**: This symbol is used\
2892-
internally by the Anjay Lite library. Do not modify its definition or access\
2893-
its fields directly. It is not part of the public API. <br><hr>"
2824+
ALIASES += anj_internal_api_do_not_use="@warning **INTERNAL API**: This symbol\
2825+
is used internally by the Anjay Lite library. Do not modify its definition or\
2826+
access its fields directly. It is not part of the public API."
2827+
2828+
ALIASES += anj_internal_fields_do_not_use="@warning **INTERNAL FIELDS**: This\
2829+
type contains fields used internally by the Anjay Lite library. Do not access\
2830+
them directly. They are not part of the public API."
2831+
2832+
ALIASES += lwm2m_core="<a href=\"https://www.openmobilealliance.org/release/LightweightM2M/V1_2_2-20240613-A/OMA-TS-LightweightM2M_Core-V1_2_2-20240613-A.pdf\">OMA LwM2M Core Specification v1.2.2 \[OMA-TS-LightweightM2M_Core-V1_2_2-20240613-A\]</a>"
2833+
2834+
ALIASES += lwm2m_transport="<a href=\"https://www.openmobilealliance.org/release/LightweightM2M/V1_2_2-20240613-A/OMA-TS-LightweightM2M_Transport-V1_2_2-20240613-A.pdf\">OMA LwM2M Transport Bindings Specification v1.2.2 \[OMA-TS-LightweightM2M_Transport-V1_2_2-20240613-A\]</a>"

0 commit comments

Comments
 (0)