jamboree/bustache

New kid on the block

mincequi opened this issue · 4 comments

Hey there,
i just wanted to let you know, that there is a new kid on the block.
Since i had the need for a small, fast and memory efficient template engine for a micro controller (e.g. ESP8266), i wrote one:
https://github.com/mincequi/tinja

Also did some performance checks with bustache. But please, check yourself.

Hopefully, you find this interesting.

Looks interesting 😎. I observed 3x~4x difference between bustache & tinja on my machine.

Nice to hear. Hopefully, difference means tinja is also faster on your machine?
Maybe, i will find the time to implement the full mustache spec, but as of now, this is sufficient for my purposes.
I also wanted to keep my impl small (200 lines of code).

Nice to hear. Hopefully, difference means tinja is also faster on your machine?

Yep.

BTW, in case you didn't know, you could feed your tinja::DataMap to bustache::format, you only need to implement some traits for tinja::StringRef, also, I'm curious why it's not std::string_view but std::reference_wrapper<const String>. I guess you want to avoid the ambiguity in Data variant constructor?

Yep, i am aware that i could use tinja::DataMap to bustache. I also tried to use your native data implementation. However, i did not succeed yet and i simply took the nlohmann adapter, because i was using that anyway for another template engine.

I did some performance comparions with std::string_view and std::reference_wrapper<const String> and discovered, that the latter is even more performant than std::string_view. Avoiding the ambiguity had been a nice side-effect. :)