https://github.com/Juniper/libxo
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.
https://github.com/Juniper/libxo
cbor freebsd html json xml
Last synced: over 1 year ago
JSON representation
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced.
- Host: GitHub
- URL: https://github.com/Juniper/libxo
- Owner: Juniper
- License: bsd-2-clause
- Created: 2014-07-11T01:25:55.000Z (almost 12 years ago)
- Default Branch: main
- Last Pushed: 2024-04-19T06:04:50.000Z (about 2 years ago)
- Last Synced: 2024-10-13T17:09:57.835Z (over 1 year ago)
- Topics: cbor, freebsd, html, json, xml
- Language: C
- Homepage: http://juniper.github.io/libxo/libxo-manual.html
- Size: 5.45 MB
- Stars: 316
- Watchers: 25
- Forks: 47
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-c - libxo - Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced. [BSD-2-Clause](https://spdx.org/licenses/BSD-2-Clause.html) (Structured File Processing / Others)
- awesome-c-zh - libxo - 允许应用程序生成纯文本,XML,JSON和使用一组通用函数调用的HTML输出。应用程序在运行时决定应该产生什么输出样式。[](https://spdx.org/licenses/BSD-2-Clause.html) (结构化文件处理 / 其他)
- awesome-c - libxo - Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced. [BSD-2-Clause](https://spdx.org/licenses/BSD-2-Clause.html) (Structured File Processing / Others)
README
libxo
=====
libxo - A Library for Generating Text, XML, JSON, and HTML Output
The libxo library allows an application to generate text, XML, JSON,
and HTML output using a common set of function calls. The application
decides at run time which output style should be produced. The
application calls a function "xo_emit" to product output that is
described in a format string. A "field descriptor" tells libxo what
the field is and what it means.
Imagine a simplified ``wc`` that emits its output fields in a single
xo_emit call:
```
xo_emit(" {:lines/%7ju/%ju} {:words/%7ju/%ju} "
"{:characters/%7ju/%ju}{d:filename/%s}\n",
line_count, word_count, char_count, file);
```
Output can then be generated in various style, using the "--libxo"
option:
```
% wc /etc/motd
25 165 1140 /etc/motd
% wc --libxo xml,pretty,warn /etc/motd
/etc/motd
25
165
1140
% wc --libxo json,pretty,warn /etc/motd
{
"wc": {
"file": [
{
"filename": "/etc/motd",
"lines": 25,
"words": 165,
"characters": 1140
}
]
}
}
% wc --libxo html,pretty,warn /etc/motd
25
165
1140
/etc/motd
```
View the beautiful documentation at:
http://juniper.github.io/libxo/libxo-manual.html
[](https://github.com/Juniper/libxo)