Serd 0.30.2

Serd 0.30.2 has been released. 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.

Changes:

  • Fix GCC 4 build
  • Fix colliding blank nodes when parsing TriG
  • Fix missing parse error messages
  • Fix parsing "a" abbreviation without padding whitespace
  • Fix parsing TriG graphs with several squashed trailing dots
  • Fix resolving some URIs against base URIs with no trailing slash
  • Improve build system and CI integration
  • Improve documentation

Serd 0.30.0

Serd 0.30.0 has been released. 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.

Changes:

  • Add NTriples test suite
  • Add basic error tolerant parsing for line-based formats
  • Add serd_free for freeing memory allocated by serd
  • Add serdi option to write ASCII output
  • Clarify errors returned by serd_env_expand()
  • Clean up testing code
  • Fix building with MSVC
  • Fix length of base64 encoded nodes
  • Fix parsing local names that end with escaped dots
  • Fix reported error when reading statements with only a blank node
  • Improve relative URI serialisation
  • Make serdi guess input syntax from extension if unspecified
  • Make serdi syntax options case-insensitive
  • Report errors for all failing test cases
  • Support strict parsing of prefixed names
  • Upgrade to waf 2.0.9 and autowaf a328983
  • Use more efficient stack allocation and growth policies

Serd 0.28.0

Serd 0.28.0 has been released. 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.

Changes:

  • Add serd_node_from_substring()
  • Add support for reading from a user provided callback
  • Fix hangs when reading corrupt UTF-8
  • Fix parsing of hex escapes in file URIs (thanks Johannes Mueller)
  • Fix strict parsing of abolute URI schemes
  • Gracefully handle applications that write corrupt UTF-8

Serd 0.26.0

Serd 0.26.0 has been released. 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.

Changes:

  • Add support for TriG and NQuads
  • Add support for braindead SPARQL PREFIX and BASE directives

Serd 0.24.0

Serd 0.24.0 has been released. 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.

Changes:

  • Add serd_node_new_relative_uri()
  • Fix construction and comparison of URIs with UTF-8 characters
  • Fix documentation generation
  • Fix potential out of bounds read
  • Fix unaligned memory access, undefined behaviour which breaks on ARM
  • Report I/O errors with message and return appropriate status code
  • Report missing statement separator errors
  • Update serdi man page

Serd 0.22.0

Serd 0.22.0 has been released. 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.

Changes:

  • Add serd_reader_set_strict() and -l (lax) option to serdi to tolerate parsing URIs with escaped characters
  • Add support for Turtle named inline nodes extension
  • Fix clash resolution when a blank node ID prefix is set
  • Fix reading statements ending with a blank then dot with no space
  • Fix serd_reader_read_file() for URIs with escaped characters (spaces)
  • Fix serializing fractional decimals that would round up
  • Fix warnings when building with ISO C++ compilers
  • Remove dependence on fmax() to avoid portability issues
  • Report errors for invalid IRI characters and missing terminators
  • Show serdi errors in standard format
  • Upgrade to waf 1.8.14

Serd 0.20.0

Serd 0.20.0 has been released. 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.

Changes:

  • Add -lm to pkg-config libs
  • Correctly handle posix_memalign failure
  • Don't write xsd:decimal literals to Turtle bare if they would not be read back with the same type
  • Fix const-correctness violation for reader input string
  • Fix possible crash in serd_writer_end_anon() when writing invalid lists
  • Generate blank names like :b1 and :B2 not :genid1 :docid2
  • Support new RDF 1.1 Turtle
  • Update to waf 1.7.14

Serd 0.18.2

Serd 0.18.2 has been released. 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.

Changes:

  • Disable timestamps in HTML documentation for reproducible build
  • Fix bug that caused "a" abbreviation in non-predicate position
  • Fix clashing symbol "error" in amalgamation build
  • Fix crash when resolving against non-standard base URIs
  • Fix crash when serd_node_new_decimal is called with infinity or NaN
  • Update to waf 1.7.8 and autowaf r90 (install docs to versioned directory)

Serd 0.18.0

Serd 0.18.0 has been released. 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.

Changes:

  • Add -e option to serdi to use incremental reading
  • Add -q option to serdi to suppress all non-data output, e.g. errors
  • Add error callback to reader and writer for custom error reporting
  • Add incremental read interface suitable for reading from infinite streams
  • Add option to build utilities as static binaries
  • Do not require a C++ compiler to build
  • Fix various hyper-strict warnings
  • Report write size correctly when invalid UTF-8 is encountered and a replacement character is written
  • Reset indent when finishing a write
  • Strip down API documentation to a single clean page
  • Support digits at start of local names as per new Turtle grammar
  • Upgrade to waf 1.7.2

Serd 0.14.0

Serd 0.14.0 has been released. 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.

Changes:

  • Add SerdBulkSink for writing bulk output and corresponding serdi -B option
  • Add serd_chunk_sink for easy writing to a string
  • Add serd_file_sink for easy writing to a FILE* stream
  • Add serd_node_new_blob and serd_base64_decode for handling arbitrary binary data via base64 encoding
  • Add serd_node_new_file_uri() and serd_file_uri_parse() and implement proper URI to/from path hex escaping, etc.
  • Add serd_reader_set_default_graph() for reading a file as a named graph
  • Add serd_strtod(), serd_node_new_decimal(), and serd_node_new_integer() for locale-independent numeric node parsing/serialising
  • Add serd_uri_serialise_relative() for making URIs relative to a base where possible (by chopping a common prefix and adding dot segments)
  • Add serd_writer_get_env()
  • Add serd_writer_set_root_uri() and corresponding -r option to serdi to enable writing URIs with up references (../)
  • Add serdi -f option to prevent URI qualification
  • Escape ASCII control characters in output (e.g. fix problems with string literals that start with a backspace)
  • Handle a quote as the last character of a long string literal in the writer (by escaping it) rather than the reader, to avoid writing Turtle other tools fail to parse
  • Handle files and strings that start with a UTF-8 Byte Order Mark
  • Implement pretty-printing for collections
  • Improve URI resolution to cover most of the abnormal cases from RFC3986
  • Improve write performance by doing bulk writes for unescaped substrings
  • Install man page to DATADIR (e.g. PREFIX/share/man, not PREFIX/man)
  • Make URIs serialised by the writer properly escape characters
  • Parse collections iteratively in O(1) space
  • Remove use of multi-byte peek (readahead) and use exactly 1 page for read buffer (instead of 2)
  • Report read error if both "genid" and "docid" IDs are found in the same document, to prevent silent merging of distinct blank nodes
  • Report reason for failure to open file in serdi
  • Resolve dot segments in serd_uri_resolve() instead of at write time
  • Support Windows file://c:/foo URIs in serd_uri_to_path() on all platforms
  • Support compilation as C++ under MSVC++
  • Support file://localhost/foo URIs in serd_uri_to_path()
  • Tolerate invalid characters in string literals by replacing with the Unicode replacement character
  • Use path variables in pkgconfig files

Page 1 / 2 »