Coder Social home page Coder Social logo

leaderyangzi / datafixerupper Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mojang/datafixerupper

0.0 1.0 0.0 200 KB

A set of utilities designed for incremental building, merging and optimization of data transformations.

License: MIT License

Java 100.00%

datafixerupper's Introduction

DataFixerUpper Latest release License

A set of utilities designed for incremental building, merging and optimization of data transformations. Created for converting the game data for Minecraft: Java Edition between different versions of the game.

Gradle

First include our repository:

maven {
    url "https://libraries.minecraft.net"
}

And then use this library (change (the latest version) to the latest version!):

compile 'com.mojang:datafixerupper:(the latest version)'

Maven

First include our repository:

<repository>
  <id>minecraft-libraries</id>
  <name>Minecraft Libraries</name>
  <url>https://libraries.minecraft.net</url>
</repository>

And then use this library (change (the latest version) to the latest version!):

<dependency>
    <groupId>com.mojang</groupId>
    <artifactId>datafixerupper</artifactId>
    <version>(the latest version)</version>
</dependency>

Usage

Core data types are Schema and DataFix: Schema is a set of type definitions specifying what data types the system is interested in and how they relate to each other, DataFix is is a rewrite rule between types (see references below). DataFixerBuilder takes a list of schemas and fixes converting between those schemas, and creates an optimized converter between the types describes in those schemas. DSL is a class with building blocks used to create schemas and fixes.

Contributing

Contributions are welcome!

Most contributions will require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

References

Optimizing functions

Cunha, A., & Pinto, J. S. (2005). Point-free program transformation Lämmel, R., Visser, E., & Visser, J. (2002). The essence of strategic programming

How to handle recursive types

Cunha, A., & Pacheco, H. (2011). Algebraic specialization of generic functions for recursive types Yakushev, A. R., Holdermans, S., Löh, A., & Jeuring, J. (2009, August). Generic programming with fixed points for mutually recursive datatypes Magalhães, J. P., & Löh, A. (2012). A formal comparison of approaches to datatype-generic programming

Optics

Pickering, M., Gibbons, J., & Wu, N. (2017). Profunctor Optics: Modular Data Accessors Pacheco, H., & Cunha, A. (2010, June). Generic point-free lenses

Tying it together

Cunha, A., Oliveira, J. N., & Visser, J. (2006, August). Type-safe two-level data transformation Cunha, A., & Visser, J. (2011). Transformation of structure-shy programs with application to XPath queries and strategic functions Pacheco, H., & Cunha, A. (2011, January). Calculating with lenses: optimising bidirectional transformations

GitHub forks GitHub stars

datafixerupper's People

Contributors

fry-mojang avatar dinnerbone avatar boq avatar

Watchers

 avatar

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.