docs/modules/ROOT/pages/index.adoc: add internal links
[barectf.git] / docs / modules / ROOT / pages / index.adoc
CommitLineData
016a4d97
PP
1= Welcome!
2:ansi-c: ANSI{nbsp}C
3
4[.welcome-logo]
5image::barectf-logo.svg[]
6
7Welcome to the _**barectf**_{nbsp}{page-component-version}
8documentation!
9
10== What's barectf?
11
12barectf (from _bare_ metal and _CTF_) is a generator of
13https://en.wikipedia.org/wiki/Tracing_(software)[tracer] which produces
14xref:how-barectf-works:ctf-primer.adoc#ds[CTF data streams].
15
16CTF is a binary trace format designed to be very fast to write without
17compromising great flexibility.
18
78a7429b 19barectf reads a xref:yaml:index.adoc[configuration] and produces:
016a4d97
PP
20
21* A CTF xref:how-barectf-works:ctf-primer.adoc#trace[metadata stream]
22 file.
23
78a7429b
PP
24* {ansi-c} source code files which, once xref:build:index.adoc[compiled],
25 constitute a tracer which writes CTF data streams.
016a4d97
PP
26+
27The generated C{nbsp}source code has no other dependencies than a few
28C{nbsp}standard library headers.
29
30Your C/{cpp} program can include the generated `barectf.h` header and
31call its xref:tracing-funcs:index.adoc[`+barectf_trace_*()+` functions]
32from source locations of your choice to write
33xref:how-barectf-works:ctf-primer.adoc#er[event records] to
34xref:how-barectf-works:ctf-primer.adoc#pkt[CTF packets]. You can then
35read and analyze the CTF traces with tools such as
36https://babeltrace.org/[Babeltrace{nbsp}2] and
37https://www.eclipse.org/tracecompass/[Trace{nbsp}Compass].
38
39xref:getting-started.adoc[Get started] now with a simple barectf
40configuration.
41
42Read xref:how-barectf-works:index.adoc[] to understand the mechanics and
43terminology of barectf.
44
45== Do I need barectf?
46
47You may need barectf if you need to add CTF tracing capabilities to your
48bare metal or embedded application/system.
49
50Because barectf generates portable {ansi-c} code, you can compile it and
51use it for virtually any system.
52
53If you need to add CTF instrumentation to Linux applications or to the
54Linux kernel, have a look at https://lttng.org/[LTTng] which offers a
55comprehensive tracing solution for Linux.
56
57== Components of barectf
58
59The barectf project contains:
60
61* A Python{nbsp}3 package, named `barectf`, which offers an API to
62 programatically create a barectf configuration and generate files out
63 of it.
64+
65The documentation of the `barectf` Python{nbsp}3 package isn't available
66yet.
67
68* A xref:cli:index.adoc[command-line interface] (CLI), named `barectf`,
69 which can process a xref:yaml:index.adoc[barectf YAML configuration
70 file] to generate files out of it.
71
72* Installed xref:yaml:include.adoc#std[standard partial YAML files]
73 which you can include in your barectf YAML configuration.
74
75== What's in this documentation?
76
77This documentation shows:
78
79* xref:install.adoc[How to install barectf].
80
81* xref:how-barectf-works:index.adoc[How barectf works].
82
83* xref:yaml:index.adoc[How to write a barectf YAML configuration].
84
85* xref:cli:index.adoc[How to generate files from a YAML configuration
86 file] with the `barectf` CLI tool.
87
88* xref:build:index.adoc[How to use and build your application with
89 a generated tracer].
90
91* xref:platform:index.adoc[How to write a barectf platform].
92
93== It's "`barectf`"!
94
95The name of the project is "`**barectf**`"; not "`BareCTF`", nor
96"`__bareCTF__`", nor "`__Barectf__`".
97
98== License
99
100The barectf project, including this documentation, is licensed under the
101https://github.com/efficios/barectf/blob/stable-{page-component-version}/LICENSE[MIT license].
This page took 0.027144 seconds and 4 git commands to generate.