pages.dox 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. @mainpage Overview
  3. @anchor json
  4. @brief coreJSON Library
  5. <p>
  6. A parser that supports key lookups while also strictly enforcing the ECMA-404 JSON standard.
  7. The library is written in C and designed to be compliant with ISO C90 and MISRA C. It has proven safe memory use
  8. and no heap allocation, making it suitable for IoT microcontrollers, but also fully portable to other platforms.
  9. </p>
  10. @section json_memory_requirements Memory Requirements
  11. @brief Memory requirements of the JSON library.
  12. @include{doc} size_table.md
  13. @section json_design Design
  14. @brief JSON Library Design
  15. <h3>Memory Usage</h3>
  16. <p>
  17. All functions in the JSON library operate only on the buffers provided and use only
  18. local variables on the stack. In order to support static-only usage, we made a
  19. trade-off to re-parse as necessary so that we would not need to keep state.
  20. </p>
  21. <h3>Parsing Strictness</h3>
  22. <p>
  23. Input validation is necessary for strong security posture. As such, the parser
  24. strictly enforces the ECMA-404 JSON standard. Additionally, JSON documents are
  25. checked for illegal UTF-8 sequences, and strings have unicode hex escapes validated.
  26. </p>
  27. <h3>Compliance & Coverage</h3>
  28. <p>
  29. The JSON library is designed to be compliant with ISO C90 and MISRA C:2012.
  30. All functions are written to have minimal complexity. Unit tests and CBMC proofs
  31. are written to cover every path of execution and achieve 100% branch coverage.
  32. </p>
  33. */
  34. /**
  35. @page json_functions Functions
  36. @brief Primary functions of the JSON library:<br><br>
  37. @subpage json_validate_function <br>
  38. @subpage json_search_function <br>
  39. @subpage json_searcht_function <br>
  40. @subpage json_searchconst_function <br>
  41. @subpage json_iterate_function <br>
  42. @page json_validate_function JSON_Validate
  43. @snippet core_json.h declare_json_validate
  44. @copydoc JSON_Validate
  45. @page json_search_function JSON_Search
  46. @snippet core_json.h declare_json_search
  47. @copydoc JSON_Search
  48. @page json_searcht_function JSON_SearchT
  49. @snippet core_json.h declare_json_searcht
  50. @copydoc JSON_SearchT
  51. @page json_searchconst_function JSON_SearchConst
  52. @snippet core_json.h declare_json_searchconst
  53. @copydoc JSON_SearchConst
  54. @page json_iterate_function JSON_Iterate
  55. @snippet core_json.h declare_json_iterate
  56. @copydoc JSON_Iterate
  57. */
  58. <!-- We do not use doxygen ALIASes here because there have been issues in the past versions with "^^" newlines within the alias definition. -->
  59. /**
  60. @defgroup json_enum_types Enumerated Types
  61. @brief Enumerated types of the JSON library
  62. @defgroup json_struct_types Struct Types
  63. @brief Struct types of the JSON library
  64. */