Skip to content

vasylenson/jacey-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jacey JSON parser in Java

Jacey is a simple and minimal JSON parser. It is a personal, mostly educational project that I like rewriting in different languages and paradigms. This repo contains the Java version of Jacey, aimed at exploring the language features and object-oriented design principles.

Goals

Explore

  • the principles of OOP, GoF, GRASP design patterns
  • see how OO paradigm works for parsers
  • Java
    • the language features, idiomatic Java code
    • Java standard library, interfaces, developing classes that integrate well with language features

Create

  • a fully functional (as in it works) and well-tested JSON library
  • extensible and composable code
  • a lightweight, zero-dependency library. that's both a practical goal and a nice challenge

Non-goals

  • highest possible performance. Performant patterns and idioms are still preferable, but this is a rather secondary criterion.
  • wide feature set. new features will only be added if I consider them an interesting challenge or a useful thing to study
  • simplicity. the complexity of code here is ridiculous and very unnecessary. Elegance and expressiveness in architecture are more of a primary goal, though. It's debatable whether this approach will result in a maintainable codebase, but I guess I'm about to find that out :D

Contributing

I ain’t got no way of knowing whether there is a force capable of moving somebody to contribute to this kind of project, but if you happen to be one such person, you're more than welcome. Any pull requests can be expected to be reviewed by me promptly.

What you can do

  • suggest corrections or optimizations
  • suggest and/or implement even crazier ways to stretch the capabilities of Java and OOP
  • extend the functionality (and I will try to make it as extensible as I can do) or even suggest features or tweaks to API to be implemented, to keep me busy :D

License

This project is licensed under MIT License, feel free to do whatever you want with it and let me know how it goes with a pull request of a tweet.

Cheers!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages