GithubHelp home page GithubHelp logo

andrelfpinto / anti-xml Goto Github PK

View Code? Open in Web Editor NEW

This project forked from arktekk/anti-xml

0.0 2.0 0.0 10.69 MB

The scala.xml library has some very annoying issues. Time for a clean-room replacement!

Home Page: http://anti-xml.org

License: Other

Scala 100.00%

anti-xml's Introduction

Anti-XML: The Non-Violent Solution

Documentation and usage can be found at http://anti-xml.org ** Outdated **

This is a forked version of Anti-XML with improved namespace support. All credit goes to Daniel Spiewak for a great library, and Trygve Laugstøl for great work for namespace support.

NOTE: the API may still change, but most things should now be backward compatible from the 0.5 release.

Anti-XML is a proposed replacement for the scala.xml package in the Scala standard library. The standard package is outdated and beyond fixing. We need to start over, on solid foundations and unburdened by backward compatibility. Anti-XML aims for quality in three major areas:

  • Usability
    • Leverage powerful ideas like combinators and proper ADTs
    • Leverage the 2.8 collections library
    • Provide consistent selector behavior
    • Avoid these missteps: Node <: NodeSeq <: Seq[Node], MetaData, Atom[String]
  • Reliability
    • Use immutable data structures (in the API and under the hood too)
    • Avoid bugs and race conditions
    • Provide a proper equals
  • Performance
    • Lower memory usage (Novell Vibe once had a 16 MB chunk of XML use 250 MB of heap!)
    • Provide efficient selectors

We are exploring many ideas for this project. It will be interesting to see where things go!

Usage

The Maven artifact descriptor for the latest stable version of Anti-XML is as follows: no.arktekk:anti-xml_2.9.1:0.5.1. We also regularly push -SNAPSHOT releases to the Sonatype_ "snapshots" repository, for all five of you who like to live dangerously. You should be able to use this descriptor to easily add Anti-XML as a dependency to any project with a Maven-compatible build system (Maven, Buildr, SBT, Gradle, Ivy, etc). The stable artifacts themselves are hosted in the Maven Central repository. For reference, here are a few copy/paste snippets you can use for some of the common build systems.

SBT

val antiXML = "no.arktekk" %% "anti-xml" % "0.5.1"

Buildr

compile.with "no.arktekk:anti-xml_#{Scala.version}:jar:0.5.1"

Maven2

<dependency>
  <groupId>no.arktekk</groupId>
  <artifactId>anti-xml_2.9.1</artifactId>
  <version>0.5.1</version>
</dependency>
<dependency>
  <groupId>no.arktekk</groupId>
  <artifactId>anti-xml_2.9.2</artifactId>
  <version>0.5.1</version>
</dependency>

Supported Versions of Scala

Anti-XML is cross-built for the following Scala versions:

  • 2.9.2
  • 2.9.1

Documentation

Usage information, examples, performance results and more can be found on the Anti-XML website: http://anti-xml.org

Contributing

Contributions are most welcome! Fork, hack, request pull, rinse and repeat. If you're looking for things to work on, I would check the issue tracker or the official TODO list. However, before you get started, be sure to read the information in CONTRIBUTING.rst. It offers some basic code guidelines (don't worry, curly braces aren't a religious issue here) and explains the legal mumbo-jumbo involved in contributing.

anti-xml's People

Contributors

arturdryomov avatar djspiewak avatar dmlap avatar eed3si9n avatar eengbrec avatar etorreborre avatar hamnis avatar jespersm avatar josharnold52 avatar ncreep avatar paulie4 avatar ppurang avatar rayrobdod avatar tommorris avatar trygvis avatar

Watchers

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