Skip to content

🚧 Type-safe, lightweight JSON validator with Kotlin DSL.

License

Notifications You must be signed in to change notification settings

Ray-Eldath/sirius

Repository files navigation

sirius forthebadge

license CodeFactor Grade DependaBot CircleCI

🚧 (WIP) Type-safe, lightweight JSON validator with Kotlin DSL.

Still work in progress, star & watch for further information information? :-)

TODO

Now comes the bigger problems should be addressed first...

  • Unit test
  • Refactor: exceptions and trace
  • Refactor: architecture, lazify the build procedure

  • Fundamental architecture
  • Global scope or option
    • required
    • any { }
  • Validation DSL
    • Number
    • Boolean
    • String
    • JSON Object
    • JSON Array
    • null
  • Documentation for API with Dokka
  • Validation configuration
  • Unit test
  • Continuous Integration (CI)
  • (?) SemVer & SemRelease

Performance

The two graphs posted below is showing the JMH test result on CircleCI, with 2 CPU cores and 4 GB memory. Each test is warmed-up 4 seconds, repeated twice, and then formally tested 8 seconds, repeated twice. The whole procedure will be repeated twice as well.

Two-part of Sirius, build a schema (build), and the validation of a given JSON string (test), are tested using JMH with the procedure described above. Note that the test part naturally involved the parsing of the given JSON string (parse), so the pure test procedure in which the parsing is not included is measured by pureTest.

The first graph is about throughput, which shows the number of times that the operation can be done in one millisecond. And the second graph is about the norm of allocation rate (AR), which shows how many bytes will be allocated during one execution. Note that under some measurements the parsing of JSON string using org.json also counted as well.

Performance: Throughput

Performance: Allocation Rate per operation

Related code are in /src/test/kotlin/.../jmh folder.

Acknowledgement

Buy me a coffee...?

Buy Me A Coffee

This project is developed with IntelliJ IDEA Ultimate and the subscription is obtained freely from Jetbrains Open Source Support Program. Thanks to Jetbrains!

Jetbrains logo

About

🚧 Type-safe, lightweight JSON validator with Kotlin DSL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages