xpack 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
xpack 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
xpack 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
xpack 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
xpack 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

xpack 是实现 C++ 结构体和 JSON/XML/BSON 互转的库。C++ 初学者可以通过该项目学到高阶的宏技巧和初级的 SFINAE 写法。

基本用法

  • 结构体后面用XPACK宏包含各个变量,XPACK内还需要一个字母,不同字母的意义请参考FLAG
  • 用xpack::json::encode把结构体转json
  • 用xpack::json::decode把json转结构体
#include <iostream>
#include "xpack/json.h" // Json包含这个头文件,xml则包含xpack/xml.h

using namespace std;

struct User {
    int id;
    string  name;
    XPACK(O(id, name)); // 添加宏定义XPACK在结构体定义结尾
};

int main(int argc, char *argv[]) {
    User u;
    string data = "{\"id\":12345, \"name\":\"xpack\"}";

    xpack::json::decode(data, u);          // json转结构体
    cout<<u.id<<';'<<u.name<<endl;

    string json = xpack::json::encode(u);  // 结构体转json
    cout<<json<<endl;

    return 0;
}

容器支持

目前支持下列容器(std)

  • vector
  • set
  • list
  • map<string, T>
  • map<integer, T> // 仅JSON,XML不支持
  • unordered_map<string, T> (需要C++11支持)
  • shared_ptr (需要C++11支持)
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2018/07/04 12:07

xpack用户管理

xpack对权限的管理包含两个主要的概念,用户和角色。角色可以限定具体的权限,包括读、写、管理等, 可以限定到index或具体字段级别。用户则可以拥有一个或多个角色信息。有了这两个概念就使得权限的管理非常明确清晰。 权限管理主要有两种方式: 1.kibana mangement管理界面进行角色和用户的管理操作 2.通过RESTful API的方式进行用户管理 推荐使用第一种,直观方便,但是需要收费。 ########################################...

0
0
发表了博客
2020/09/01 10:45

Elasticsearch6.x-xpack破解

去掉license校验 下载luyten反编译JAVA工具 用luyent打开Elasticsearch目录下的modules/x-pack-core/x-pack-core-x.x.x.jar 找到 org.elasticsearch.license.LicenseVerifier文件,提取出来做以下修改: LicenseVerifier 中有两个静态方法,这就是验证授权文件是否有效的方法,我们把它修改为全部返回true. package org.elasticsearch.license; import java.nio.*; import org.elasticsearch.common.bytes.*; import java...

0
0
2020/07/21 11:06

ES7.8 设置 xpack

### 单节点 xpack 配置 --- #### 修改 ES 配置文件,开启 Security * 默认文件:`./config/elasticsearch.yml` ```properties xpack.security.enabled: true xpack.security.transport.ssl.enabled: true ``` * 配置修改完之后重启 ES。 #### 设置内置用户密码 ```shell ./bin/elasticsearch-setup-passwords interactive ``` #### 修改 Kibana 配置文件,访问 ES * 默认文件:`$KIBANA_HOME/config/kibana.yml` ```properties ...

0
0
发表了博客
2020/05/31 09:53

二. Elasticsearch 7.7.0使用xpack认证

Elasticsearch 7.7.0使用xpack认证 一. 证书配置: (证书需放至各Node的config目录下) $ cd /opt/elasticsearch/ $ ./bin/elasticsearch-certutil ca $ ./bin/elasticsearch-certutil cert -ca elastic-stack-ca.p12 $ mv elastic-stack-ca.p12 config/ $ mv elastic-certificates.p12 config/ 二. 修改各Node配置文件: $ grep -E -v "^#|^$" config/elasticsearch.yml cluster.name: my-es node.name: node-0 path.data: /opt/e...

0
0
2018/06/15 14:04

elasticsearch6.0安装xpack之后创建JAVA客户端遇到的问题

最近在研究ES,使用的版本是6.0,然后跟着官方文档安装了相关的kibana和下仓库。使用起来感觉比以前的head插件好用多了,界面也美观不少。测试了一些些常用命令之后,就开始写JAVA客户端,然后就遇到问题了,我获取客户端的方式如下: Settings settings = Settings.builder.put("cluster.name","bruce-es-cluster") .put("client.transport.sniff",false) ...

0
0
2019/06/02 22:33

Elasticsearch 设置登录账号密码,xpack/Kibana

从 Elastic Stack 6.8 和 7.1 开始,我们在默认分发包中免费提供多项安全功能,例如 TLS 加密通信、基于角色的访问控制 (RBAC),等等。在此篇博文中,我们将会讲解如何启用这些功能来确保您的 Elasticsearch 集群的安全。 为了给您提供一个实际示例来演示如何确保 Elastic Stack 实施项目的安全,我们将会在本地机器上创建一个两节点 Elasticsearch 集群并进行安全设置。要实现这一点,我们首先需要在两个节点之间配置 TLS 通信...

0
0
2020/03/14 17:28

基于Bboss的Elasticsearch SQL ORM操作

1.前言 bboss ES SQL是针对es jdbc的替代解决方案 bboss 提供一组sql和fetchQuery API,可替代官方es jdbc模块;采用bboss即可拥有bboss的客户端自动发现和容灾能力、对es、jdk、spring boot的兼容性能力,又可以拥有es jdbc的所有功能,同时还解决了因为引入es jdbc导致项目对es版本的强依赖和兼容性问题, 官方的ES-SQL功能必须Elasticsearch 6.3以上的版本才提供;Elasticsearch-SQL插件可以在不同的Elasticsearch版本上运行...

0
1
发表了博客
2019/03/25 22:11

elasticsearch 6.2.4添加用户密码认证

elasticsearch 6.3版本之前的添加认证需安装x-pack插件,6.3之后貌似去掉了这个。 1、安装x-pack 先切换到elastic用户下,在执行以下命令 $cd /data/elasticsearch-6.2.4 --进到elasticsearch的安装目录 $./bin/elasticsearch-plugin install x-pack 2、设置密码: $cd /data/elasticsearch-6.2.4/bin/x-pack $./setup-passwords interactive 会对elasticsearch、logstash、kibana分别设置登录密码(默认es用户名为elastic,...

0
0
发表了博客
2019/02/19 17:28

ElasticSearch由5.6.x升级到6.6.0记录

## 准备工作 ### 升级参考材料 - 5.6.x 升级到6.6.0可以采用滚动升级,具体步骤参考[滚动升级步骤](https://www.elastic.co/guide/en/elasticsearch/reference/current/rolling-upgrades.html "滚动升级步骤") - 如果安装了x-pack,则需要升级xpack内置索引,具体参考文档[xpack内部索引升级](https://www.elastic.co/guide/en/elastic-stack/6.6/upgrading-elastic-stack.html#upgrade-internal-indices "xpack内部索引升级")或者...

0
1
2018/09/19 11:29

ElasticSearch 用户、权限控制

当前直接使用ElasticSearch以及通过Kibana访问时,没有做任何限制,没有做用户和权限的控制,安全性上有一定风险,因此通过ES提供的X-PACK来实现这一需求。同样是基于ES5.5版本。官网简介如下:X-Pack是一种Elastic Stack扩展,可将安全性,警报,监控,报告和图形功能捆绑到一个易于安装的软件包中。 虽然X-Pack组件可以无缝协同工作,但您可以轻松地启用或禁用要使用的功能。可见,本文所述的相关功能只是这个扩展包的一小部分...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
2 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部