<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rankin-ccsv-03" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title abbrev="CCSV File Format">Common Format and Media Type for Control-Character-Separated Values (CCSV) Files</title>
    <seriesInfo name="Internet-Draft" value="draft-rankin-ccsv-03"/>
    <author fullname="Mike Rankin">
      <organization/>
      <address>
        <email>mrankin@reactor.zone</email>
      </address>
    </author>
    <date year="2026" month="October" day="29"/>
    <keyword>CCSV</keyword>
    <keyword>media type</keyword>
    <keyword>tabular data</keyword>
    <abstract>
      <?line 37?>

<t>This document specifies the Control-Character-Separated Values
(CCSV) file format, a UTF-8 encoded tabular data format that uses
ASCII control characters as field and record separators. CCSV is
intended for exchanging structured, rectangular data between
applications such as databases, spreadsheets, statistical software,
and data conversion utilities. This document also specifies the
<tt>text/csv</tt> media type for CCSV files.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://oldgrognard.github.io/ccsv-draft/draft-rankin-ccsv.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-rankin-ccsv/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/oldgrognard/ccsv-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 47?>

<section anchor="intro">
      <name>Introduction</name>
      <t>A CCSV (Control-Character-Separated Values) file is a file format
for moving rectangular data between applications such as
spreadsheets, statistical analysis programs, databases, and
conversion utilities.</t>
      <t>CCSV is similar in purpose to Comma-Separated Values (CSV) files
<xref target="RFC4180"/>, Tab-Separated Values (TSV) files, and their
derivatives. CCSV differs primarily in its use of non-printable
ASCII control characters as field and record separators.</t>
      <t>Using control characters as separators reduces ambiguity when
field values contain characters commonly used as delimiters in other
formats.  In particular, CCSV does not require quoting or escaping
ordinary printable characters solely because those characters have
special meaning in other delimited-value formats.</t>
      <t>A CCSV file consists of a required header followed by zero or more
records. The header and every record contain the same number of
fields. The first row therefore defines the names of the columns,
while subsequent rows contain the corresponding values.</t>
      <t>This document defines the CCSV file format and registers the
<tt>text/ccsv</tt> media type.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The following terms are used throughout this document:</t>
      <ul spacing="normal">
        <li>
          <t><strong>Field:</strong> A single value withing a CCSV record.</t>
        </li>
        <li>
          <t><strong>Record:</strong> A sequence of fields representing one row of data.</t>
        </li>
        <li>
          <t><strong>Header:</strong> The first record in a CCSV file. The fields in the header identify the columns of the file.</t>
        </li>
        <li>
          <t><strong>Unit Separator (US):</strong> The Unicode character U+001F, used to separate fields.</t>
        </li>
        <li>
          <t><strong>Record Separator (RS):</strong> The Unicode character U+001E, used to separate records.</t>
        </li>
      </ul>
    </section>
    <section anchor="format">
      <name>CCSV Format</name>
      <section anchor="structure">
        <name>File Structure</name>
        <t>A CCSV file <bcp14>MUST</bcp14> begin with a header.</t>
        <t>The header and each subsequent record <bcp14>MUST</bcp14> contain the same number of fields.</t>
        <t>A Unit Separator (US, U+001F) separates adjacent fields within a record.</t>
        <t>A Record Separator (RS, U+001E) separates adjacent records, including the header from the first data record.</t>
        <t>A CCSV file <bcp14>MUST</bcp14> therefore contain an RS following the header. An RS <bcp14>MAY</bcp14> also follow the final
record. The presence or absence of an RS following the final record does
not change the contents of the file.</t>
        <t>The end of the encoded CCSV data constitutes the end of the file.
No additional end-of-file character or sequence is required.</t>
      </section>
      <section anchor="requirements">
        <name>Formatting Requirements</name>
        <t>A conforming CCSV file <bcp14>MUST</bcp14> satisfy all of the following requirements:</t>
        <ol spacing="normal" type="1"><li>
            <t>The file <bcp14>MUST</bcp14> be encoded in UTF-8 <xref target="RFC3629"/>.</t>
          </li>
          <li>
            <t>The file <bcp14>MUST NOT</bcp14> begin with a UTF-8 byte order mark (BOM, U+FEFF).</t>
          </li>
          <li>
            <t>The file <bcp14>MUST</bcp14> begin with a header. The header consists of one or more fields separated by US (U+001F).</t>
          </li>
          <li>
            <t>US (U+001F) <bcp14>MUST</bcp14> occur between adjacent fields in a record.</t>
          </li>
          <li>
            <t>RS (U+001E) <bcp14>MUST</bcp14> occur between adjacent records, including between the header and the first data record.</t>
          </li>
          <li>
            <t>An RS <bcp14>MAY</bcp14> occur immediately after the final record. A producer <bcp14>SHOULD NOT</bcp14> add an RS after the final record unless doing so is useful for the producer or its surrounding processing system.</t>
          </li>
          <li>
            <t>The header and every record <bcp14>MUST</bcp14> contain the same number of fields.</t>
          </li>
          <li>
            <t>Empty fields are represented by consecutive delimiters or by a delimiter adjacent to the beginning or end of a record, as applicable.</t>
          </li>
          <li>
            <t>US (U+001F) and RS (U+001E) <bcp14>MUST NOT</bcp14> occur within the contents of a field.</t>
          </li>
          <li>
            <t>Carriage return (CR, U+000D) and line feed (LF, U+000A) are valid field characters and <bcp14>MUST NOT</bcp14> be interpreted as record separators.</t>
          </li>
        </ol>
        <t>Except for US and RS, a field <bcp14>MAY</bcp14> contain any Unicode scalar value representable in UTF-8 including other ASCII control characters.</t>
      </section>
      <section anchor="syntax">
        <name>Syntax</name>
        <t>The following ABNF <xref target="RFC5234"/> describes the CCSV structure
at the UTF-8 octet level. The UTF-8 productions are
taken from <xref target="RFC3629"/>.</t>
        <artwork><![CDATA[
file       = header RS *(record RS) [record]
header     = field *(US field)
record     = field *(US field)
field      = *field-char
field-char = %x00-1D /
             %x20-7F /
             UTF8-2 /
             UTF8-3 / UTF8-4

RS         = %x1E ; Record Separator, U+001E

US         = %x1F ; Unit Separator, U+001F

UTF8-2     = %xC2-DF UTF8-tail

UTF8-3     = %xE0 %xA0-BF UTF8-tail /
             %xE1-EC 2( UTF8-tail ) /
             %xED 3( UTF8-tail ) /
             %xEE-EF 2( UTF8-tail )

UTF8-4     = %xF0 %x90-BF 2( UTF8-tail ) /
             %xF1-F3 3( UTF8-tail ) /
             %xF4 %x80-8F 2( UTF8-tail )

UTF8-tail  = %x80-BF
]]></artwork>
        <t>The UTF-8 grammar above is provided for implementation convenience. The authoritative definition of UTF-8 is <xref target="RFC3629"/>.</t>
        <t>A field <bcp14>MAY</bcp14> be empty. Consequently, the following are valid field arrangements when the surrounding
record contains the appropriate number of fields.</t>
        <artwork><![CDATA[
field<US>field2
<US>field2
field1<US>
<US>
]]></artwork>
        <t>where <tt>&lt;US&gt;</tt> represents U+001F.</t>
      </section>
    </section>
    <section anchor="encoding">
      <name>Encoding Considerations</name>
      <t>CCSV files <bcp14>MUST</bcp14> be encoded using UTF-8 <xref target="RFC3629"/>.</t>
      <t>The UTF-8 encoding applies to the entire CCSV file, including the header and all field contents.</t>
      <t>A CCSV file <bcp14>MUST NOT</bcp14> begin with a UTF-8 byte order mark (BOM, U+FEFF).</t>
      <t>UTF-8 permits CCSV to represent Unicode text while retaining the single-octet representation
of the ASCII control characters used as delimiters.</t>
      <t>CR and LF are data characters in CCSV and are not record delimiters.
Applications transporting CCSV content <bcp14>MUST</bcp14> preserve CR and LF occurring within fields as data.</t>
      <t>When CCSV is transported using a protocol or representation that
imposes additional requirements on textual content, those
requirements apply to the transport representation. Such processing
<bcp14>MUST NOT</bcp14> alter the CCSV data represented by the payload.</t>
    </section>
    <section anchor="i18n">
      <name>Internationalization Considerations</name>
      <t>CCSV uses UTF-8 <xref target="RFC3629"/> and therefore supports
Unicode text in field and header values.</t>
      <t>CCSV does not define a language, locale, collation, numeric format,
date format, or other interpretation of field contents. Applications
processing CCSV data are responsible for applying appropriate
locale-specific or application-specific interpretation to field
values.</t>
      <t>Unicode strings are intended to be compared as identifiers
or used in security-sensitive operations may require Unicode
normalization or other application-specific processing. CCSV does
not prescribe a normalization form.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>CCSV is a passive data format and does not itself define executable
content. However, CCSV data is commonly imported into applications
such as spreadsheets, databases, statistical software, and scripts.
Those applications may assign additional semantics to particular
field values.</t>
      <t>In particular, applications that import CCSV data into spreadsheet
software or other systems capable of evaluating expressions
<bcp14>MUST NOT</bcp14> assume that field contents are trustworthy. An application
may interpret a field beginning with a particular
character as a formula, expression, command, or other executable
content. Such applications <bcp14>SHOULD</bcp14> treat CCSV field
contents as untrusted input and apply appropriate validation or
escaping before passing the data to an interpreter.</t>
      <t>Implementations parsing CCSV data <bcp14>SHOULD</bcp14> also
protect against resource-exhaustion attacks, including excessively
large fields, records, or files.</t>
      <t>CCSV provides no confidentiality, integrity, authentication, or
access-control mechanisms. Applications requiring those properties
<bcp14>MUST</bcp14> provide them through mechanisms outside the CCSV
format.</t>
      <t>Implementations <bcp14>MUST</bcp14> reject malformed UTF-8 rather
than silently interpreting invalid UTF-8 sequences as valid CCSV
data.</t>
    </section>
    <section anchor="interop">
      <name>Interoperability Considerations</name>
      <t>Interoperability depends on consistent implementation of the CCSV
formatting and encoding requirements.</t>
      <t>In particular, implementations <bcp14>MUST</bcp14> agree on all of the following:</t>
      <ul spacing="normal">
        <li>
          <t>UTF-8 encoding;</t>
        </li>
        <li>
          <t>absence of a leading UTF-8 BOM;</t>
        </li>
        <li>
          <t>US (U+001F) as the field separator;</t>
        </li>
        <li>
          <t>RS (U+001E) as the record separator;</t>
        </li>
        <li>
          <t>equal field counts in the header and every record;</t>
        </li>
        <li>
          <t>representation of empty fields;</t>
        </li>
        <li>
          <t>prohibition of US and RS within field contents; and</t>
        </li>
        <li>
          <t>treatment of the CR and LF as field data rather than record separators.</t>
        </li>
      </ul>
      <t>Implementations <bcp14>MUST NOT</bcp14> treat printable delimiter characters as
having special CCSV semantics. CCSV does not require quoting or escaping of printable
characters merely because they have special meaning in
other delimited-value formats.</t>
      <t>Implementations that consume CCSV <bcp14>SHOULD</bcp14> validate
the file structure of the file before processing its contents.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>IANA is requested to register the following media type in the
Standards Tree:</t>
      <dl>
        <dt>Type name:</dt>
        <dd>
          <t>text</t>
        </dd>
        <dt>Subtype name:</dt>
        <dd>
          <t>ccsv</t>
        </dd>
        <dt>Required parameters:</dt>
        <dd>
          <t>charset. The charset parameter <bcp14>MUST</bcp14> have the value "UTF-8".</t>
        </dd>
        <dt>Optional parameters:</dt>
        <dd>
          <t>None.</t>
        </dd>
        <dt>Encoding considerations:</dt>
        <dd>
          <t>8bit. CCSV content is encoded using UTF-8 as specified in <xref target="encoding"/>.
CR and LF occuring within fields are data characters and are not CCSV
record separators.</t>
        </dd>
        <dt>Security considerations:</dt>
        <dd>
          <t>See <xref target="security"/>.</t>
        </dd>
        <dt>Interoperability considerations:</dt>
        <dd>
          <t>See <xref target="interop"/>.</t>
        </dd>
        <dt>Published specification:</dt>
        <dd>
          <t>This document.</t>
        </dd>
        <dt>Applications that use this media type:</dt>
        <dd>
          <t>Databases, spreadsheets, statistical programs, data
  conversion utilities, and other applications that process
  rectangular tabular data.</t>
        </dd>
        <dt>Fragment identifier considerations:</dt>
        <dd>
          <t>CCSV does not define a fragment identifier syntax.</t>
        </dd>
      </dl>
      <t>Additional information:
:</t>
      <dl>
        <dt>Deprecated alias names for this type:</dt>
        <dd>
          <t>None.</t>
        </dd>
        <dt>Magic number(s):</dt>
        <dd>
          <t>None.</t>
        </dd>
        <dt>File name extension(s):</dt>
        <dd>
          <t>.ccsv</t>
        </dd>
        <dt>Macintosh file type code(s):</dt>
        <dd>
          <t>None.</t>
        </dd>
        <dt>Person &amp; email address to contact for further information:</dt>
        <dd>
          <t>Mike rankin <eref target="mailto:mrankin@oldgrognard.pub">mrankin@oldgrognard.pub</eref></t>
        </dd>
        <dt>Intended usage:</dt>
        <dd>
          <t>COMMON</t>
        </dd>
        <dt>Restrictions on usage:</dt>
        <dd>
          <t>None.</t>
        </dd>
        <dt>Author:</dt>
        <dd>
          <t>Mike Rankin <eref target="mailto:mrankin@oldgrognard.pub">mrankin@oldgrognard.pub</eref></t>
        </dd>
        <dt>Change controller:</dt>
        <dd>
          <t>IETF</t>
        </dd>
      </dl>
    </section>
    <section anchor="examples">
      <name>Examples</name>
      <t>In the examples below &lt;US&gt; represents U+001F and
&lt;RS&gt; represents U+001E. The notation is used only to
make the control characters visible and not part of an
actual CCSV file</t>
      <section anchor="basic-example">
        <name>Basic Example</name>
        <t>The following CCSV data contains three columns and two records:</t>
        <artwork><![CDATA[
Name<US>Age<US>City<RS>
Alice<US>42<US>Boston<RS>
Bob<US>37<US>Chicago
]]></artwork>
      </section>
      <section anchor="empty-fields-empty-fields">
        <name>Empty Fields {empty-fields}</name>
        <t>The following record contains an empty second field:</t>
        <artwork><![CDATA[
Alice<US><US>Boston
]]></artwork>
        <t>The consecutive US characters represent an empty field.</t>
        <t>The following record begins with an empty field.</t>
        <artwork><![CDATA[
<US>42<US>Boston
]]></artwork>
      </section>
      <section anchor="optional-final-record-separator">
        <name>Optional Final Record Separator</name>
        <t>Both of the following representations contain the same three
fields and ar valid CCSV representations of a final record:</t>
        <artwork><![CDATA[
Alice<US>42<US>Boston
]]></artwork>
        <t>and:</t>
        <artwork><![CDATA[
Alice<US>42<US>Boston<RS>
]]></artwork>
        <t>A producer <bcp14>SHOULD</bcp14> generally omit the final RS
unless its processing environment benefits from a terminating
record separator.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <reference anchor="RFC4180">
        <front>
          <title>Common Format and MIME Type for Comma-Separated Values (CSV) Files</title>
          <author fullname="Y. Shafranovich" initials="Y." surname="Shafranovich"/>
          <date month="October" year="2005"/>
          <abstract>
            <t>This RFC documents the format used for Comma-Separated Values (CSV) files and registers the associated MIME type "text/csv". This memo provides information for the Internet community.</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="4180"/>
        <seriesInfo name="DOI" value="10.17487/RFC4180"/>
      </reference>
      <reference anchor="RFC2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author fullname="S. Bradner" initials="S." surname="Bradner"/>
          <date month="March" year="1997"/>
          <abstract>
            <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
        <seriesInfo name="DOI" value="10.17487/RFC2119"/>
      </reference>
      <reference anchor="RFC8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author fullname="B. Leiba" initials="B." surname="Leiba"/>
          <date month="May" year="2017"/>
          <abstract>
            <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
          </abstract>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
        <seriesInfo name="DOI" value="10.17487/RFC8174"/>
      </reference>
      <reference anchor="RFC3629">
        <front>
          <title>UTF-8, a transformation format of ISO 10646</title>
          <author fullname="F. Yergeau" initials="F." surname="Yergeau"/>
          <date month="November" year="2003"/>
          <abstract>
            <t>ISO/IEC 10646-1 defines a large character set called the Universal Character Set (UCS) which encompasses most of the world's writing systems. The originally proposed encodings of the UCS, however, were not compatible with many current applications and protocols, and this has led to the development of UTF-8, the object of this memo. UTF-8 has the characteristic of preserving the full US-ASCII range, providing compatibility with file systems, parsers and other software that rely on US-ASCII values but are transparent to other values. This memo obsoletes and replaces RFC 2279.</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="63"/>
        <seriesInfo name="RFC" value="3629"/>
        <seriesInfo name="DOI" value="10.17487/RFC3629"/>
      </reference>
      <reference anchor="RFC5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>
          <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
          <author fullname="P. Overell" initials="P." surname="Overell"/>
          <date month="January" year="2008"/>
          <abstract>
            <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
          </abstract>
        </front>
        <seriesInfo name="STD" value="68"/>
        <seriesInfo name="RFC" value="5234"/>
        <seriesInfo name="DOI" value="10.17487/RFC5234"/>
      </reference>
    </references>
    <?line 389?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The author thanks those individuals who provided feedback and
technical discussions concerning the CCSV format and its proposed
media type.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51a63LbyLH+P08xkStbtkPQujhZrexsIkti1lW+7BGlbKVS
qTIIDklEIMBgAElcld7lPMt5svN19wwwACGvK/4hE8Bcevr6dfdEUaSqtMrM
id47K9brIteTolzHlY7zuf5o5mmsr7YboxdFqc+KvCqLLDpbxWWcVKaMpmaD
n5WZ67/HWW2sfn52Nv37Cz1JM2P3VDybleaWlsZbfulW31MJZi2Lcnui03xR
KDUvkjxeg4x5GS+qqIzzmzSPksTeRvtHytazdWptCgJAzIl+f3E1UXm9npny
RM2x1IlKitya3Nb2RFdlbRS2PVLPdFya+ESfbjZZii2xgOWTXZo4i67StcGQ
u6K8WZZFvcG6+dxsDP7klZ42e6obs8Wg+YnSkaaj0P9r5g2RQ09VPKuzuNSg
JVa3Jq9B0TOt3bK//I0ehPRfsFuaL/Xf6BO9XsdpRkP+au7j9SYz46RY0/u4
TFYnelVVG3vy6lXw8RWWw9Jptapn4G2RzbHNMo/L+SvmF3NwD0MyMMZWGOIX
CYaOZf44LYJJr3aYP15V62xPqbiuVkVJDMC6Wi/qLBNx7X1Mb4y+5Bl7/M3I
gfbWssxfIYCkKsrxr0VusFLOCpDegkGKRN8+jcdjpaIo0vHMVqRgSl2tUquh
GvWaJGI3JkkXKdSsWplv0EbltHFBiic7jXSsr68m0bE2eVLMMTSUnBuE5fGn
tljhdHr2/r1OZCud+K2gRBbLmmzO2lSaBOqhrexflHbMaqJTiyNWpE9zNiBz
jxXyJYkfJ6yTqi7NfETTK7xuyZiZ6s6YXMWh2to6WdG2NGIWg7gRGALmzu3K
mIqeKoy0FSZk2haL6g66P1JEHy+KQ9yCcqyl6yrN0gqMHOsuh+PMFl02qy9f
KnNfvYIufPkSKL04BDokcdc6ya3T+TwzCur7njg2xxFpv4dnKT0+KnUqc57/
tvCc2EBdHApQ0b7r4pZ4+BTf9BDf1NPMivM421rstIFxlPEanwMmg4FqkHdK
OSFrm65TIiLN9aYuN4U1uio0+dN4yEV6nbTq4eF3l5Oz1wfH+4+PI30VzwaG
XzXDmRYSSlqquSnTW7Ycr2zzdLEgzdyU6Tou02xL5KSVJUXWxULnRR7hW46D
QUT/rWIrdW2J98Mz24GYCumD/ng9S5d1Wm313QoqLWvfytlokRhUBoskHIRA
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

-->

</rfc>
