Easy-Es is a powerfully enhanced toolkit of RestHighLevelClient for simplify development

Overview

East-Es-Logo

Born To Simplify Development

maven code style

What is Easy-Es?

Easy-Es is a powerfully enhanced toolkit of RestHighLevelClient for simplify development. This toolkit provides some efficient, useful, out-of-the-box features for ElasticSearch. By using Easy-Es, you can use MySQL syntax to complete Es queries. Use it can effectively save your development time.

Official website

https://easy-es.cn/#/en/

Links

Features

  • Auto configuration on startup
  • Out-of-the-box interfaces for operate es
  • Powerful and flexible where condition wrapper
  • Lambda-style API
  • Automatic paging operation
  • Support high-level syntax such as highlighting and weighting and Geo etc
  • ...

Compare

Demand: Query all documents with title equals "Hi" and author equals "Guy"

documents = documentMapper.selectList(wrapper);">
// Use Easy-Es to complete the query with only 3 lines of code
LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
wrapper.eq(Document::getTitle, "Hi").eq(Document::getCreator, "Guy");
List<Document> documents = documentMapper.selectList(wrapper);
// Query with RestHighLevelClient requires 11 lines of code, not including parsing JSON code
String indexName = "document";
SearchRequest searchRequest = new SearchRequest(indexName);
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
TermQueryBuilder titleTerm = QueryBuilders.termQuery("title", "Hi");
TermsQueryBuilder creatorTerm = QueryBuilders.termsQuery("creator", "Guy");
boolQueryBuilder.must(titleTerm);
boolQueryBuilder.must(creatorTerm);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(boolQueryBuilder);
searchRequest.source(searchSourceBuilder);
try {
    SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
    // Then parse the DocumentList from searchResponse in various ways, omitting these codes...
    } catch (IOException e) {
            e.printStackTrace();
    }

The above is just a simple query demonstration. The more complex the actual query scene, the better the effect, which can save 3-5 times the amount of code on average.

Getting started

  • Add Easy-Es dependency

    • Latest Version: Maven Central
    • Maven:
      <dependency>
        <groupId>io.github.xpc1024groupId>
        <artifactId>easy-es-boot-starterartifactId>
        <version>Latest Versionversion>
      dependency>
    • Gradle
      compile group: 'io.github.xpc1024', name: 'easy-es-boot-starter', version: 'Latest Version'
  • Add mapper file extends BaseEsMapper interface

    public interface DocumentMapper extends BaseMapper<Document> {
    }
  • Use it

    documentList = documentMapper.selectList(); ">
    LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
    wrapper.eq(Document::getTitle,"Hello World")
           .eq(Document::getCreator,"Guy");
    List<Document> documentList = documentMapper.selectList();

    Easy-Es will execute the following Query:

    {"query":{"bool":{"must":[{"term":{"title":{"value":"Hello World","boost":1.0}}},{"term":{"creator":{"value":"Guy","boost":1.0}}}],"adjust_pure_negative":true,"boost":1.0}}}

    The syntax of this query in MySQL is:

     SELECT * FROM document WHERE title = 'Hello World' AND creator = 'Guy'

This showcase is just a small part of Easy-Es features. If you want to learn more, please refer to the documentation.

SUPPORT

In the early stage of project promotion, I hope everyone can give a little bit of three links: Star, 👀 Watch, fork 📌 , support the spirit of open source, let more people see and use this project, thank you very much!

Syntax comparison with MySQL

MySQL Easy-Es
and and
or or
= eq
!= ne
> gt
>= ge
< lt
<= le
like '%field%' like
not like '%field%' notLike
like '%field' likeLeft
like 'field%' likeRight
between between
notBetween notBetween
is null isNull
is notNull isNotNull
in in
not in notIn
group by groupBy
order by orderBy
min min
max max
avg avg
sum sum
sum sum
- orderByAsc
- orderByDesc
- match
- highLight
... ...

Donate

Donate Easy-Es

License

Easy-Es is under the Apache 2.0 license. See the Apache License 2.0 file for details.

Comments
  • eq 查询不到对应的数据

    eq 查询不到对应的数据

     LambdaEsQueryWrapper<Demo> wrapper = new LambdaEsQueryWrapper<>();
     wrapper.like(Demo::getMessage, demoDto.getMessage())
                   .eq(Demo::getUserName, demoDto.getUserName())
                  ...
    demoMapper.selectList(wrapper);
    

    比如这个 demoDto.getUserName() 的值为张三,es中是存在userName为张三的数据的,但是无法查询出来

    opened by MrLucy 2
  • 根据嵌套对象里的字段排序

    根据嵌套对象里的字段排序

    除了利用原生的语句,可以用wrapper的方式根据嵌套对象里的字段排序吗,没有找到对应的方法

    OrderByParam order = new OrderByParam(); order.setOrder("student.age"); wrapper.orderByDesc("student.age"); 用这种方式没有效果,不能排序

    opened by hhf296095496 1
  • 在索引实体类中加入另外一个实体类会报错

    在索引实体类中加入另外一个实体类会报错

    两个实体:

    @Data @IndexName(value = "content_index",shardsNum = 1,replicasNum = 2) public class Content {

    @IndexId(type = IdType.CUSTOMIZE)
    private String indexId;
    
    /**
     * 这个字段没有存进去,在研究
     */
    @IndexField("id")
    private Long id;
    
    @IndexField(value = "title")
    private String title;
    
    /**
     * 将时间格式化,并转为中国时区
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date planEndTime;
    
    private Integer tplId;
    
    
    @IndexField(value = "student",fieldType = FieldType.OBJECT)
    private Student student;
    

    // @IndexField(value = "students",fieldType = FieldType.ARRAY) // private List students;

    public void setId(Long id) {
        this.id = id;
        this.indexId = id.toString();
    }
    

    }

    @Data @AllArgsConstructor @NoArgsConstructor public class Student {

    private String name;
    
    private Integer age;
    
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date dirthday;
    

    }

    报错内容: 12:56:51.371 [http-nio-8080-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.reflect.UndeclaredThrowableException] with root cause java.lang.NullPointerException: null at com.alibaba.fastjson.serializer.SerializeWriter.writeFieldValueStringWithDoubleQuoteCheck(SerializeWriter.java:1869) at com.alibaba.fastjson.serializer.SerializeWriter.writeFieldValue(SerializeWriter.java:1854) at com.alibaba.fastjson.serializer.ASMSerializer_2_Student.writeNormal(Unknown Source) at com.alibaba.fastjson.serializer.ASMSerializer_2_Student.write(Unknown Source) at com.alibaba.fastjson.serializer.ASMSerializer_1_Content.writeNormal(Unknown Source) at com.alibaba.fastjson.serializer.ASMSerializer_1_Content.write(Unknown Source) at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:312) at com.alibaba.fastjson.JSON.toJSONString(JSON.java:769) at com.alibaba.fastjson.JSON.toJSONString(JSON.java:707) at cn.easyes.core.conditions.BaseEsMapperImpl.buildJsonIndexSource(BaseEsMapperImpl.java:1132) at cn.easyes.core.conditions.BaseEsMapperImpl.buildIndexRequest(BaseEsMapperImpl.java:855) at cn.easyes.core.conditions.BaseEsMapperImpl.doInsert(BaseEsMapperImpl.java:546) at cn.easyes.core.conditions.BaseEsMapperImpl.lambda$insert$7(BaseEsMapperImpl.java:266) at java.base/java.util.stream.ReferencePipeline$4$1.accept(ReferencePipeline.java:212) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.IntPipeline.reduce(IntPipeline.java:491) at java.base/java.util.stream.IntPipeline.sum(IntPipeline.java:449) at cn.easyes.core.conditions.BaseEsMapperImpl.insert(BaseEsMapperImpl.java:267) at cn.easyes.core.conditions.BaseEsMapperImpl.insert(BaseEsMapperImpl.java:257) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at cn.easyes.core.proxy.EsMapperProxy.invoke(EsMapperProxy.java:28) at com.sun.proxy.$Proxy57.insert(Unknown Source) at com.hhf.controller.TestController.t1(TestController.java:56) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:655) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:764) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1732) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:834)

    opened by hhf296095496 1
  • id是索引中的一个字段怎么办,又想把id设置为主键

    id是索引中的一个字段怎么办,又想把id设置为主键

    @Data @IndexName(value = "rmrb_live_info_test_s1") public class Content {

    @IndexField("id")
    @IndexId(type = IdType.CUSTOMIZE)
    private Long id;
    
    private String title;
    
    private Date planEndTime;
    
    private Integer tplId;
    

    }

    我实体类是这样写的,id即使主键又是索引数据的一个字段,我这样写,只能把id设置成主键,索引数据中没有id这个字段,请问怎么设置呢

    opened by hhf296095496 1
  • ES官方最新版已经做了对sql的兼容

    ES官方最新版已经做了对sql的兼容

    读最新的文档,发现官方也已经支持类似的功能了 https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-getting-started.html POST /_sql?format=txt { "query": "SELECT * FROM library WHERE release_date < '2000-01-01'" }

    opened by kequeen 1
  • 注解标记高亮,导致空指针异常

    注解标记高亮,导致空指针异常

    在insert保存的时候,由于当前需要存储的字段被标记为高亮,在insert时,被标记为高亮字段所在列被忽略,导致序列化过程中出现空指异常。为什么需要插入的时候需要把高亮字段忽略,没太明白作者的意图,我理解不应该忽略该内容,如果需要忽略也是按照具体序列化方式,或者把序列化方式的操作抽象为接口,可以让使用者自己选择

    opened by jojocodeX 1
  • Add ability to configure TLS certificate and set ApiCompatibilityMode to support ElasticSearch 8

    Add ability to configure TLS certificate and set ApiCompatibilityMode to support ElasticSearch 8

    • In ElasticSearch 8.x, TLS and user authentication are enabled by default, can the developer suggest how to set http_ca.crt at https://github.com/xpc1024/easy-es-springboot-demo ?

    • Here are two blog posts about how to connect via TLS certificate under co.elastic.clients:elasticsearch-java:8.1.1, but it would be better if some friends can give the introduction of global configuration of TLS certificate in easy-es (Maybe in application.yml). Refer to https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/8.1/_encrypted_communication.html and https://spinscale.de/posts/2022-02-17-running-elasticsearch-8-with-testcontainers.html .

    • I noticed that the component is using RestHighLevelClient, which means that if somebody need to connect to the ElasticSearch 8.x cluster, he need to add the environment variable ELASTIC_CLIENT_APIVERSIONING: true for ElasticSearch. For this part, please refer to https://www.elastic.co/guide/en/elasticsearch/reference/current/rest-api-compatibility.html . Hope that helps with the corresponding tests.

    • As a supplement, developers should try adding a property set to HLRC's client.setApiCompatibilityMode(true) in the easy-es configuration class. See https://github.com/elastic/elasticsearch/issues/77859, which helps in finding issues with unit tests in Elastic Stack 8.x versions without setting client-side environment variables.

    • Also, there is a clarification as https://discuss.elastic.co/t/migration-from-hlrc-to-java-api/300479 , HLRC version 7.17.1 and Java API client 8.x, both use the same RestClient for http communication, and they can coexist in the same project, I think it can be gradually migrated to the new client on easy-es. Of course, the Java API client 8.x is basically generated by the API specification, This leads to the fact that although its API is stable, its documentation is still not finished, and somebody need to go to JavaDoc to see more information.

    opened by linghengqian 1
  • Any plan to support FieldType.WILDCARD

    Any plan to support FieldType.WILDCARD

    Description

    Auto index only cover TEXT or KEYWORD, do we have the possible to support wildcard? For current version, I have to set manual index-mode and manually create index for wildcard.

    Expect Sample

    @IndexField(fieldType = FieldType.WILDCARD)
    private String content;
    

    Then it will auto create index as type wildcard

    Reference

    https://www.elastic.co/guide/en/elasticsearch/reference/7.17/keyword.html#wildcard-field-type

    opened by alaahong 0
  • 请求支持索引数据从DB中同步

    请求支持索引数据从DB中同步

    请求支持场景: 业务数据使用MySQL存储,ES只做搜索,这样就需要支持MySQL数据同步到ES; MySQL设计表结构一般遵循三范式、ES索引结构却支持多层级JSON,故一般SQL主表一条记录对应ES一个文档、SQL主表的关联表对应ES文档下的一个JSON,如:

    create table student
    (
        id   bigint unsigned auto_increment
            primary key,
        name varchar(32) not null comment '名称'
    );
    create table course
    (
        id   bigint unsigned auto_increment
            primary key,
        name varchar(32) not null comment '名称'
    );
    create table student_course
    (
        id         bigint unsigned auto_increment
            primary key,
        student_id bigint not null comment '学生id',
        course_id  bigint not null comment '课程id'
    );
    

    对应ES的数据应该是:

    {
      "_id": 1,
      "name": "学生名称",
      "course": [
        {
          "course_id": 1,
          "name": "课程名称"
        }
      ]
    }
    

    请求支持此种数据同步,业界方案一般是使用读binlog、表和文档字段映射关系配置来实现,但自己实现起来会遇到各种问题,如:拓展性不够、容灾性不高、数据会丢失、同步会卡住、同步延迟大、SQL改动后会涉及到重建索引 一直没有一个好用的、开源的、易入手的框架工具来解决这个事情,看了作者大大的EE索引维护方案,希望作者大大能够考虑这种场景,出一个解决方案

    opened by ljynfo 0
  • Elasticsearch 版本检查警告日志级别改为 Warning

    Elasticsearch 版本检查警告日志级别改为 Warning

    ERROR 49888 --- [ main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!

    如题,ERROR 改为 WARNING,分析日志总是看到,很烦。

    opened by Suomm 0
Releases(v1.1.1)
  • v1.1.1(Dec 8, 2021)

    v1.1.1

    1.修复在混合查询模式下,用户手count api无效的缺陷。#I66ITR 2.修复分页参数中hasNextPage不正确的缺陷。#I64NJF 3.修复仅设置socketTimeOut不设置requestTimeOut等参数时socketTimeOut参数无效的缺陷。#I66IUI 4.调整trackTotalSize大于1W条时自动开启的逻辑为用户配置,(配置为开启则开启,配置为关闭则关闭,部分用户反馈自动开启会产生幻觉) 本期主要是一些小缺陷修复和体验优化,后面两个版本将有重大更新

    --

    v1.1.1

    1. Fix the defect that the user's manual count api is invalid in the mixed query mode.#I66ITR
    2. Fix the bug that hasNextPage is incorrect in paging parameters.#I64NJF
    3. Fix the defect that the socketTimeOut parameter is invalid when only the socketTimeOut parameter is set and the requestTimeOut parameter is not set.#I66IUI
    4. When the trackTotalSize is adjusted to be greater than 1W, the logic of automatic opening is configured by the user. (If it is configured to be open, it will be open. If it is configured to be closed, it will be closed. Some users report that the automatic opening will cause illusion.) This issue mainly focuses on minor defect repair and experience optimization, and the next two versions will have major updates
    Source code(tar.gz)
    Source code(zip)
Owner
dromara
poems & dreams
dromara
The Distributed Application Runtime (Dapr) provides APIs that simplify microservice connectivity

Quarkus - Dapr Introduction What is Quarkus? Traditional Java stacks were engineered for monolithic applications with long startup times and large mem

Quarkiverse Hub 18 Jan 5, 2023
Fast Android Development. Easy maintainance.

Fast Android Development. Easy maintenance. AndroidAnnotations is an Open Source framework that speeds up Android development. It takes care of the pl

null 11.1k Dec 31, 2022
APIKit:Discovery, Scan and Audit APIs Toolkit All In One.

APIKit:Discovery, Scan and Audit APIs Toolkit All In One.

APISecurity Community 976 Jan 9, 2023
Hexagon is a microservices toolkit written in Kotlin

Hexagon is a microservices' toolkit (not a framework) written in Kotlin. Its purpose is to ease the building of server applications (Web applications, APIs or queue consumers) that run inside a cloud platform.

Hexagon 413 Jan 5, 2023
A proof-of-concept Android application to detect and defeat some of the Cellebrite UFED forensic toolkit extraction techniques.

LockUp An Android-based Cellebrite UFED self-defense application LockUp is an Android application that will monitor the device for signs for attempts

levlesec 300 Dec 4, 2022
A Toolkit for Modeling and Simulation of Resource Management Techniques in Internet of Things, Edge and Fog Computing Environments

The iFogSimToolkit (with its new release iFogSim2) for Modeling and Simulation of Resource Management Techniques in Internet of Things, Edge and Fog Computing Environments. In the new release Mobili Management, Microservice Management, and Dynamic Clustering mechanisms are added as new features.

The Cloud Computing and Distributed Systems (CLOUDS) Laboratory 69 Dec 17, 2022
Spring-Boot-Plus is a easy-to-use, high-speed, high-efficient,feature-rich, open source spring boot scaffolding

Everyone can develop projects independently, quickly and efficiently! What is spring-boot-plus? A easy-to-use, high-speed, high-efficient, feature-ric

geekidea 2.3k Dec 31, 2022
Tuya 37 Dec 26, 2022
Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project.

MagOKO Stack Community-Driven Game Server Development solution for Java Developers based on DEEPINTHINK MagOKO Project. License Copyright 2021-present

DeepInThink Community 10 Jun 1, 2021
A React Native project starter with Typescript, a theme provider with hook to easy styling component, a folder architecture ready and some configs to keep a codebase clean.

React Native Boilerplate Folder structure : src ├── assets │   ├── audios │   ├── fonts │   ├── icons │   └── images ├── components │   ├── Layout.tsx

LazyRabbit 23 Sep 1, 2022
All development related with the ONLYONE token.

onlyone All development related with the Onlyone Finance. ONLYONE Token Total Supply: 1 Contract creation: https://bscscan.com/tx/0x1becbd78297f267dec

Onlyone Finance 73 Jan 1, 2023
A lightweight messaging library that simplifies the development and usage of RabbitMQ with the AMQP protocol.

kryo-messaging This library contains a simple MessagingService which simplifies the setup and work with RabbitMQ and the AMQP protocol. Usage Gradle r

Kryonite Labs 3 Jan 10, 2022
A networking library for LibGDX utilizing Netty allowing easy creation of multiplayer games.

Lunar What is Lunar? Lunar is a networking library for LibGDX. With lunar you can easily create multiplayer games quickly and efficiently. Lunar provi

Vrekt 28 Nov 25, 2022
Person Apri development in real time

Digital Innovation: Expert class - Desenvolvendo um sistema de gerenciamento de pessoas em API REST com Spring Boot Nesta live coding vamos desenvolve

Vitor Nunes 1 Nov 11, 2021
Tencent Kona JDK17 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) with quarterly updates.

Tencent Kona JDK17 Tencent Kona JDK17 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) w

Tencent 59 Nov 30, 2022
Nrich is a Java library developed at CROZ whose purpose is to make development of applications on JVM a little easier.

nrich Nrich is a Java library developed at CROZ whose purpose is to make development of applications on JVM a little easier. It contains modules that

CROZ 44 Nov 12, 2022
A distributed lock that supports the use of Redis and Zookeeper, out of the box, fast and easy to use

lock-spring-boot-starter A distributed lock that supports the use of Redis and Zookeeper, out of the box, fast and easy to use 一款基于 Redis 和 Zookeeper

Pear Stack 9 Oct 15, 2022
Spring Cloud Alibaba provides a one-stop solution for application development for the distributed solutions of Alibaba middleware.

Spring Cloud Alibaba A project maintained by Alibaba. See the 中文文档 for Chinese readme. Spring Cloud Alibaba provides a one-stop solution for distribut

Alibaba 24.4k Jan 1, 2023
Tzatziki - Decathlon library to ease and promote Test Driven Development of Java microservices!

Tzatziki Steps Library This project is a collection of ready-to-use Cucumber steps making it easy to TDD Java microservices by focusing on an outside-

Decathlon 32 Dec 15, 2022