Update readme

This commit is contained in:
Victor Zverovich 2017-11-10 07:24:16 -08:00
parent 9fda7a36fd
commit e613b3c7b1

View File

@ -21,40 +21,39 @@ Features
-------- --------
* Two APIs: faster concatenation-based `write API * Two APIs: faster concatenation-based `write API
<http://fmtlib.net/latest/api.html#write-api>`_ and slower, <http://fmtlib.net/latest/api.html#write-api>`_ and slower, but still very
but still very fast, replacement-based `format API fast, replacement-based `format API
<http://fmtlib.net/latest/api.html#format-api>`_ with positional arguments <http://fmtlib.net/latest/api.html#format-api>`_ with positional arguments for
for localization. localization.
* Write API similar to the one used by IOStreams but stateless allowing * Write API similar to the one used by IOStreams but stateless allowing faster
faster implementation. implementation.
* Format API with `format string syntax * Format API with `format string syntax <http://fmtlib.net/latest/syntax.html>`_
<http://fmtlib.net/latest/syntax.html>`_
similar to the one used by `str.format similar to the one used by `str.format
<https://docs.python.org/2/library/stdtypes.html#str.format>`_ in Python. <https://docs.python.org/2/library/stdtypes.html#str.format>`_ in Python.
* Safe `printf implementation * Safe `printf implementation
<http://fmtlib.net/latest/api.html#printf-formatting-functions>`_ <http://fmtlib.net/latest/api.html#printf-formatting-functions>`_ including
including the POSIX extension for positional arguments. the POSIX extension for positional arguments.
* Support for user-defined types. * Support for user-defined types.
* High speed: performance of the format API is close to that of * High speed: performance of the format API is close to that of glibc's `printf
glibc's `printf <http://en.cppreference.com/w/cpp/io/c/fprintf>`_ <http://en.cppreference.com/w/cpp/io/c/fprintf>`_ and better than the
and better than the performance of IOStreams. See `Speed tests`_ and performance of IOStreams. See `Speed tests`_ and
`Fast integer to string conversion in C++ `Fast integer to string conversion in C++
<http://zverovich.net/2013/09/07/integer-to-string-conversion-in-cplusplus.html>`_. <http://zverovich.net/2013/09/07/integer-to-string-conversion-in-cplusplus.html>`_.
* Small code size both in terms of source code (the core library consists of a single * Small code size both in terms of source code (the core library consists of a
header file and a single source file) and compiled code. single header file and a single source file) and compiled code.
See `Compile time and code bloat`_. See `Compile time and code bloat`_.
* Reliability: the library has an extensive set of `unit tests * Reliability: the library has an extensive set of `unit tests
<https://github.com/fmtlib/fmt/tree/master/test>`_. <https://github.com/fmtlib/fmt/tree/master/test>`_.
* Safety: the library is fully type safe, errors in format strings are * Safety: the library is fully type safe, errors in format strings can be
reported using exceptions, automatic memory management prevents buffer reported at compile time, automatic memory management prevents buffer overflow
overflow errors. errors.
* Ease of use: small self-contained code base, no external dependencies, * Ease of use: small self-contained code base, no external dependencies,
permissive BSD `license permissive BSD `license
<https://github.com/fmtlib/fmt/blob/master/LICENSE.rst>`_ <https://github.com/fmtlib/fmt/blob/master/LICENSE.rst>`_
* `Portability <http://fmtlib.net/latest/index.html#portability>`_ with consistent output * `Portability <http://fmtlib.net/latest/index.html#portability>`_ with
across platforms and support for older compilers. consistent output across platforms and support for older compilers.
* Clean warning-free codebase even on high warning levels * Clean warning-free codebase even on high warning levels
(-Wall -Wextra -pedantic). (``-Wall -Wextra -pedantic``).
* Support for wide strings. * Support for wide strings.
* Optional header-only configuration enabled with the ``FMT_HEADER_ONLY`` macro. * Optional header-only configuration enabled with the ``FMT_HEADER_ONLY`` macro.