语法解析工具jsoniter、marky-markdown、Checked C、Tomorrow介绍

以下为你介绍的语法解析工具都可用在Linux系统上:jsoniter(JSON 解析器)、marky-markdown(npm 的 markdown 解析器)、Checked C(C/C++ 更加安全的库)、Tomorrow(异步代码语法修饰器)。

1、jsoniter(JSON 解析器)

jsoniter(json-iterator)是一款快且灵活的 JSON 解析器,同时提供 Java 和 Go 两个版本。

Jsoniter 是最快的 JSON 解析器。它最多能比普通的解析器快 10 倍之多,即使在数据绑定的用法下也有同样的性能优势。下面献上自己的跑分。

非常易于使用的 api,允许你使用任何风格或者混搭的方式来解析 JSON。给你前所未有的灵活性。来看看这些 API 们是不是真的有那么好用吧。

Java 版本跑分:

语法解析工具jsoniter、marky-markdown、Checked C、Tomorrow介绍

Go 版本跑分:

语法解析工具jsoniter、marky-markdown、Checked C、Tomorrow介绍

用法:

与标准库100%兼容。

Replace:

import "encoding/json"

json.Marshal(&data)

with:

import "github.com/json-iterator/go"

var json = jsoniter.ConfigCompatibleWithStandardLibrary

json.Marshal(&data)

Replace:

import "encoding/json"

json.Unmarshal(input, &data)

with:

import "github.com/json-iterator/go"

var json = jsoniter.ConfigCompatibleWithStandardLibrary

json.Unmarshal(input, &data)

怎么获得:

go get github.com/json-iterator/go

下载地址:http://jsoniter.com/

2、marky-markdown(npm 的 markdown 解析器)

marky-markdown 是 npm 的官方 markdown 解析器,基于 NodeJS 编写,旨在用 GitHub-style markdown 进行奇偶校验。它由一个最好的 CommonMark markdown 解析器——markdown-it 构建。

安装:

npm install marky-markdown --save

编程中使用:

marky-markdown 输出单独函数。为了基本使用,这个函数使用一个由字符串转换而成的参数。

var marky = require("marky-markdown")

marky("# hello, I'm markdown").html()

命令行使用:

你可以在 shell 中使用 marky-markdown 来解析 markdown 文件,最简单的方法是全局安装它。

npm i -g marky-markdown

marky-markdown some.md > some.html

它能做什么:

使用markdown-it解析markdown,它是一种快速且符合commonmark的解析器。

使用sanitize-html删除损坏的恶意用户输入。

使用Atom的Highlights库将语法突出显示应用于GitHub风格的代码块。

使用cheerio执行DOM操作的各种功能。

将:emoji:-style的快捷方式转换为unicode表情符号。

将标题(h1、h2等)转换为锚定的超链接。

将相对的GitHub链接转换为其绝对等效。

将相关的GitHub图像源转换为它们的GitHub原始等效项。

将不安全的Gravatar URL转换为HTTPS。

将前导[]和[x]的列表项转换为GitHub风格的任务列表。

包装嵌入式YouTube视频,以便对其进行样式设置。

解析和清理package.description作为markdown。

将CSS类应用于与npm软件包名称和描述紧密匹配的冗余内容。

将CSS类应用于徽章图片,因此有一天我们可以对它们进行一些有趣的操作。

npm 包:

var package = {

name: "foo",

description: "foo is a thing",

repository: {

type: "git",

url: "https://github.com/kung/foo"

}

}

marky(

"# hello, I am the foo readme",

{package: package}

).html()

下载地址:https://gitee.com/mirrors/marky-markdown

3、Checked C(C/C++ 更加安全的库)

微软开源了Checked C,旨在对C和C++增加边界检查的研究项目。

Checked C允许程序员在C/C++中编写“确保边界检查”的代码。为了实现这个功能Checked C增加了新的指针和数组类型,它们可以在编译期和运行时进行边界检查:

ptr<T>:指向类型T且无须边界检查的指针。这种类型的指针不允许参与算数运算。当访问内存时,该类型指针不能为null。大部分指针应该用此类型。

array_ptr<T>:指向包含类型T数组的指针。该指针可以进行算数运算。当读写内存时它不能为null。程序员需要检查这类指针的边界。

span<T>:包含边界信息的指针。塔支持算数运算。当进行内存读写的时候不能为null。

T array_var checked[100]:声明类型为T、大小为100的数组并且包含边界检查。当进行C语言类型转换时,包含边界检查的数组将被转换成array_ptr类型。

该规范确定了变量操作行为,包括指针类型的间接寻址、数组引用、赋值、指针加法、比较、取址(&)、含边界检查数组类型和指针类型的转换等。

现存的C程序可以继续工作,很明显C*仍然未检查,且指针的算数运算会破坏当前代码。但是编译器可以通过增加参数在指针非正常使用时发出警告或者错误。

Checked C 包含规范、一个clang的实现和一个LLVM的实现。

下载地址:https://gitee.com/mirrors/checked-c

4、Tomorrow(异步代码语法修饰器)

Tomorrow 是一个用 Python 写的异步代码语法修饰器。

tomorrow 库可以让你在享受到多线程的好处的同时,又不用过多考虑执行细节。这个库是对 concurrent.futures 中的 Future 对象的一个小型封装器,可以帮助你访问 Future 的属性。

注明

以上就是语法解析工具jsoniter、marky-markdown、Checked C、Tomorrow的介绍内容,这些语法解析工具都能使用在Linux操作系统中。

栏目相关文章