Serd subproject with meson
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
David Robillard 2146e945d2 Only use modern deprecated attributes on clang 7 and newer 2 years ago
doc Use globally unique Doxygen group names 2 years ago
include Only use modern deprecated attributes on clang 7 and newer 2 years ago
resources Generate documentation with Sphinx 2 years ago
scripts dox_to_sphinx.py: Emit documentation in groups 2 years ago
src Only define WIN32_LEAN_AND_MEAN for MSVC 2 years ago
test Use email address instead of website for attribution 2 years ago
waflib@b600c928b2 Update autowaf 2 years ago
.clang-format Format all code with clang-format 2 years ago
.gitattributes Add gitattributes to disable newline mangling for RDF files 3 years ago
.gitignore Add __pycache__ to gitignore 3 years ago
.gitlab-ci.yml Only publish documentation on master 2 years ago
.gitmodules Fix autowaf submodule URL 3 years ago
.travis.yml Add Travis configuration 5 years ago
AUTHORS Add AUTHORS file. 12 years ago
COPYING Update date in version output 2 years ago
INSTALL Update INSTALL file 7 years ago
NEWS Fix SERD_DISABLE_DEPRECATED 2 years ago
README.md Fix plots in README 2 years ago
serd.pc.in Specify -lm in libs.private for static compilation (#918). 9 years ago
serd.ttl Update metadata 3 years ago
waf Update waf 4 years ago
wscript Fix SERD_DISABLE_DEPRECATED 2 years ago

README.md

Serd

Serd is a lightweight C library for RDF syntax which supports reading and writing Turtle, TriG, NTriples, and NQuads. Serd is suitable for performance-critical or resource-limited applications, such as serialising very large data sets or embedded systems.

Features

  • Free: Serd is Free Software released under the extremely liberal ISC license.

  • Portable and Dependency-Free: Serd has no external dependencies other than the C standard library. It is known to compile with GCC, Clang, and MSVC (as C++), and is tested on GNU/Linux, MacOS, and Windows.

  • Small: Serd is implemented in a few thousand lines of C. It typically compiles to about 100 KiB, or about 50 KiB stripped with size optimizations.

  • Fast and Lightweight: Serd can stream abbreviated Turtle, unlike many tools which must first build an internal model. This makes it particularly useful for writing very large data sets, since it can do so using only a small amount of memory. Serd is, to the author's knowledge, the fastest Turtle reader/writer by a wide margin (see Performance below).

  • Conformant and Well-Tested: Serd passes all tests in the Turtle and TriG test suites, correctly handles all "normal" examples in the URI specification, and includes many additional tests which were written manually or discovered with fuzz testing. The test suite is run continuously on many platforms, has 100% code coverage by line, and runs with zero memory errors or leaks.

Performance

The benchmarks below compare serdi, rapper, and riot re-serialising Turtle data generated by sp2b on an i7-4980HQ running Debian 9. Of the three, serdi is the fastest by a wide margin, and the only one that uses a constant amount of memory (a single page) for all input sizes.

Time Throughput Memory

Documentation

-- David Robillard d@drobilla.net