GithubHelp home page GithubHelp logo

tzlaine / text Goto Github PK

View Code? Open in Web Editor NEW
312.0 19.0 36.0 177.44 MB

What a c++ standard Unicode library might look like.

Home Page: https://tzlaine.github.io/text

License: Boost Software License 1.0

C++ 99.95% CMake 0.01% Python 0.03% Shell 0.01% C 0.01% Starlark 0.01% HTML 0.01% SCSS 0.01%

text's Introduction

text

Motivation

C and C++ are the only major production languages that do not have robust Unicode support. This library attempts to provide that support for C++.

This library provides a Unicode implementation suitable for use by anyone โ€” including those who know next to nothing about Unicode.

Features

  • Iterators, views, and algorithms that convert among UTF-8, UTF-16, and UTF-32.

  • An implementation of the Unicode algorithms for dealing with encodings, normalization, text segmentation, etc.

  • A family of types for use in Unicode-aware text processing. This includes text, text_view, rope, and rope_view.

  • Code familiarity -- all of the above types and algorithms work like the STL containers and algorithms.

This library targets submission to Boost and eventual standardization.

It's more interesting than it sounds.

Online docs: https://tzlaine.github.io/text

Ubuntu-20.04 - GCC 9,10 Ubuntu-22.04 - GCC 10,11

Windows-2019 - Visual Studio 2019 Windows-2022 - Visual Studio 2022

License

text's People

Contributors

longhronshen avatar mbkkt avatar msuvajac avatar tzlaine avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

text's Issues

Sort key compression

It's pretty easy now that the FractionalUCA.txt data are driving collation. It just needs to be done.

'make install' installs gtest, gmock, and benchmark, but not text

As part of playing with text, I performed a build/install with commands like the following and found that this installed the gtest, gmock, and benchmark dependencies, but not the text library headers, docs, or other artifacts.

cd build
cmake -DCMAKE_BUILD_TYPE=DEBUG ..
cmake --build . --config DEBUG --target install -- DESTDIR=/my/sandbox

Try space-optimizing the character hash tables

It may be possible to combine the properties like quick check, ccc, etc. into a single struct, all placed into a single hash map. If there is not a large runtime penalty for this, this could be a nice space savings.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.