This is a quick reference cheat sheet for understanding and writing INI-format configuration files.
INI is a configuration file with a fixed standard format Base elements are keys or properties Each key consists of a name and a value, separated by an equal sign (=) key name is displayed to the left side of the equals sign equal sign and semicolon are reserved characters INI configuration method comes from the MS-DOS operating system
Now an informal standard for many configurations, other operating systems may use .conf or .cfg as a suffix
; Here are the comments
[owner]
name=John Doe
organization=Acme Products
[database]
; Here are the comments
server=192.0.2.42
port=143
file="acme payroll.dat"
[section.subsection]
foo = bar
comment (;)
; This is the comment text and will be ignored
comment (#)
# Here is the comment text, ⚠️ Some compilers support it
Comments after a line (;,#) (not standard)
var = a ; this is an inline comment
foo = bar # this is another inline comment
Comments must appear alone on lines in some cases
The name appears on a line by itself Names are enclosed in square brackets [ and ] No explicit section end delimiter End at the next section declaration or at the end of the file Section and attribute names are case insensitive
[section]
key1 = a
key2 = b
The same as JSON below 👇
{
"section": {
"key1": "a",
"key2": "b"
}
}
[section]
domain = ref.softcrony.com
[section.subsection]
foo = bar
The same as JSON below 👇
{
"section": {
"domain": "ref.softcrony.com"
"subsection": {
"foo": "bar"
}
}
}
Nest to previous section (shorthand)
[section]
domain = ref.softcrony.com
[.subsection]
foo = bar
\\ — \ (single backslash, escape escape character)
\' — apostrophe
\" — double quotes
\0 — null character
\a — ringtone/alert/sound
\b — Backspace, [Bell character] for some applications (https://en.wikipedia.org/wiki/Bell_character)
\t — tab character
\r — carriage return
\n — newline
\; — semicolon
\# — number sign
\= — equal sign
\: — colon
\x???? — Unicode character for the hexadecimal code point corresponding to ????
[section]
domain = ref.softcrony.com
array[]=first value
array[]=second value
The same as JSON below 👇
{
"section": {
"domain": "ref.softcrony.com",
"array": [
"first value",
"second value"
]
}
}
@go-ini/ini (golang) @npm/ini (nodejs) @zonyitoo/rust-ini (rust) @rxi/ini (c) @pulzed/mINI (c++) @rickyah/ini-parser (c#) @Enichan/Ini (c#)