Skip to content

nigels-com/tutf8e

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tutf8e

Tute Feighty

A tiny UTF-8 encoder for C.

Goals

  • As small and fast as possible
  • Narrowly scoped to one-step UTF-8 encoding in C
  • Link only what you need and use
  • MIT licence

Supported Encodings

Test Procedure

$ ./codegen.py

$ gcc src/* test/test.c -Iinclude

$ ./a.out
A quick brown fox jumps over the lazy dog
Nechť již hříšné saxofony ďáblů rozezvučí síň úděsnými tóny waltzu, tanga a quickstepu.
Pijamalı hasta yağız şoföre çabucak güvendi.
Põdur Zagrebi tšellomängija-följetonist Ciqo külmetas kehvas garaažis
В чащах юга жил бы цитрус? Да, но фальшивый экземпляр!
διαφυλάξτε γενικά τη ζωή σας από βαθειά ψυχικά τραύματα
עטלף אבק נס דרך מזגן שהתפוצץ כי חם
Pijamalı hasta yağız şoföre çabucak güvendi.
Flygande bäckasiner söka hwila på mjuka tuvor.
เป็นมนุษย์สุดประเสริฐเลิศคุณค่า กว่าบรรดาฝูงสัตว์เดรัจฉาน จงฝ่าฟันพัฒนาวิชาการ อย่าล้างผลาญฤๅเข่นฆ่าบีฑาใคร ไม่ถือโทษโกรธแช่งซัดฮึดฮัดด่า หัดอภัยเหมือนกีฬาอัชฌาสัย ปฏิบัติประพฤติกฎกำหนดใจ พูดจาให้จ๊ะๆ จ๋าๆ น่าฟังเอยฯ
Jeżu klątw, spłódź Finom część gry hańb!
11 passed, 0 failed tests

How small is it?

512 bytes + overhead per encoding.

$ for i in src/*; do gcc -c $i -O1; done
$ du -bhc *.o | grep total
32K total

$ for i in src/*; do gcc -c $i -O3; done
$ du -bhc *.o | grep total
32K total

$ for i in src/*; do gcc -c $i -Os; done
$ du -bhc *.o | grep total
28K total

Related