README.md
</a>
<a href="https://github.com/tboox/tbox/actions?query=workflow%3ALinux">
</a>
<a href="https://github.com/tboox/tbox/actions?query=workflow%3AmacOS">
</a>
<a href="https://github.com/tboox/tbox/actions?query=workflow%3AAndroid">
</a>
<a href="https://github.com/tboox/tbox/releases">
</a>
</a>
<a href="https://www.reddit.com/r/tboox/">
</a>
<a href="https://gitter.im/tboox/tboox?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge">
</a>
<a href="https://t.me/tbooxorg">
</a>
<a href="https://jq.qq.com/?_wv=1027&k=5hpwWFv">
</a>
<a href="https://tboox.top/donation/">
</a>
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. 🙏 [Become a sponsor]
<a href="https://opencollective.com/tbox#backers" target="_blank"></a>
TBOX is a glib-like cross-platform C library that is simple to use yet powerful in nature.
The project focuses on making C development easier and provides many modules (.e.g stream, coroutine, regex, container, algorithm ...), so that any developer can quickly pick it up and enjoy the productivity boost when developing in C language.
It supports the following platforms: Windows, Macosx, Linux, Android, iOS, *BSD and etc.
And it provides many compiling options using xmake:
If you want to know more, please refer to: Documents, Github and Gitee
tb_xxx prefix for avoiding conflictmemset_u16, memset_u32, memset_u64 extension interfacestb_xxx prefix for avoiding conflictSome projects using tbox:
Please install xmake first: xmake
# build for the host platform
$ cd ./tbox
$ xmake
# build for the mingw platform
$ cd ./tbox
$ xmake f -p mingw --sdk=/home/mingwsdk
$ xmake
# build for the iphoneos platform
$ cd ./tbox
$ xmake f -p iphoneos
$ xmake
# build for the android platform
$ cd ./tbox
$ xmake f -p android --ndk=xxxxx
$ xmake
# build for the linux cross-platform
$ cd ./tbox
$ xmake f -p linux --sdk=/home/sdk # --bin=/home/sdk/bin
$ xmake
$ ./configure
$ make
#include "tbox/tbox.h"
int main(int argc, char** argv) {
if (!tb_init(tb_null, tb_null)) return 0;
tb_vector_ref_t vector = tb_vector_init(0, tb_element_str(tb_true));
if (vector) {
tb_vector_insert_tail(vector, "hello");
tb_vector_insert_tail(vector, "tbox");
tb_for_all (tb_char_t const*, cstr, vector) {
tb_trace_i("%s", cstr);
}
tb_vector_exit(vector);
}
tb_exit();
return 0;
}
You can also consider sponsoring us to get technical support services, [Become a sponsor]