libtld is a library used to extract the TLD from a URI and to check email validity. This allows you to extract the exact domain name, sub-domains, and all the TLD (top level, second level, third level, etc.). The problem with TLDs is that you cannot know where the domain starts. Some domains can use one top-level domain, others use two, etc. However, it may be useful to know where the domain is to have the exact list of sub-domains. For example, if you want to force www. at the start of the domain name if no other sub-domains are specified, then you need to know exactly how many TLD are defined in a URI. The libtld offers one main function: tld(), which gives you a way to extract the TLD from any URI. The result is the offset where the TLD starts. This gives you enough information to extract everything else you need. For emails, the library is capable of parsing a string that represents a list of email addresses to be verified. The verification includes a check of the domain name and its TLD.
The YB.ORM library aims to simplify writing C++ code that has to deal with SQL databases. The goal is to provide a convenient interface like SQLAlchemy (Python) or Hibernate (Java). The library itself is cross-platform and supports a variety of SQL dialects: SQLite3, MySQL, Postgres, Oracle, and Firebird. Integration with Boost, Qt4, and wxWidgets is built-in. In a typical usage scenario, you would describe your database schema and table relationships in a simple XML-based format, generate SQL code to populate database schema with tables, generate C++ classes, add application-specific logic to the classes, and use these classes in cooperation with the Session object to query objects from the database, create new or modify/delete existing objects, or link and unlink objects using relations. Simple serialization to XML is supported along with connection pooling.