Provides a faster implementation of the standard F# Printf module.

For some applications, provides an order of magnitude performance improvement. This is achieved by carefuly caching parse results and preserving maximum genericity to avoid boxing/unboxing.

The interface follows that of the standard F# Printf module.

Known limitations in this version:

  • None of format modifiers (width, flags, precision) are currently supported although they are parsed; the implementation simply ignores their values.

  • %A is not supported, it currently has the same effect as %O


The source code is available under GNU Affero GPL, see the GNU Affero General Public License for more details. Alternative licensing schemes are available, contact IntelliFactory if interested.


The easiest way to obtain IntelliFactory.Printf binaries is by using the NuGet repository.


open IntelliFactory.Printf
sprintf "%s: %i" "one" 1


Build requirements:

  • Microsoft .NET Framework 4.0

  • F#

To compile for all configurations, run MSBuild.exe Build\Build.proj in the root directory of the checkout.


The preferred way to report bug and request enhancements is through the built-in issue service.


IntelliFactory.Printf is being developed by IntelliFactory. Please feel free to contact us.


Special thanks to Vladimir Matveev (@v2_matveev), F# dev team at Microsoft, for fruitful discussions leading to some of the ideas in this code.