Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
D

DataFixerUpper

> 编程语言
Open source

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

1.3K stars0 likes0 views
WebsiteGitHub

About

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

DataFixerUpper

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:

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

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

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

Maven

First include our repository:

xml

  minecraft-libraries
  Minecraft Libraries
  https://libraries.minecraft.net

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

xml

    com.mojang
    datafixerupper
    (the latest version)

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 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

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Javamojang-active

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言