{"id":18414895,"url":"https://github.com/xerial/xerial","last_synced_at":"2026-03-05T16:15:22.864Z","repository":{"id":3838415,"uuid":"4920389","full_name":"xerial/xerial","owner":"xerial","description":"Data management utilities for Scala","archived":false,"fork":false,"pushed_at":"2016-12-13T18:07:43.000Z","size":2867,"stargazers_count":19,"open_issues_count":1,"forks_count":2,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2025-06-29T01:04:54.259Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xerial.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-07-06T06:36:35.000Z","updated_at":"2024-12-16T04:50:19.000Z","dependencies_parsed_at":"2022-07-30T17:18:57.284Z","dependency_job_id":null,"html_url":"https://github.com/xerial/xerial","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/xerial/xerial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerial%2Fxerial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerial%2Fxerial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerial%2Fxerial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerial%2Fxerial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xerial","download_url":"https://codeload.github.com/xerial/xerial/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xerial%2Fxerial/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263674243,"owners_count":23494541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T03:52:37.394Z","updated_at":"2026-03-05T16:15:21.725Z","avatar_url":"https://github.com/xerial.png","language":"Scala","readme":"Xerial Project\n===========\n\nXerial is data managment utilties for Scala. \nThe ulitimate goal of Xerial project is to manage everything as database,\nincluding class objects, text format data (json, XML, Silk, etc.), data\nstreams, etc.\n\n# Modules\n\n## xerial-core\nCore utilities of xerial projects. No dependencies other than the\nscala-library exists in xerial-core.\n \n * Useful collection classes\n     * CyclicArray (double-ended queue), RedBlackTree, balanced PrioritySearchTree (*O(log N+k)* for interval-intersection queries), UnionFindSet etc.\n * Logger whose log levels and output targets can be configured through a JMX interface at runtime\n     * For use, simply extend `xerial.core.log.Logger` trait in your class, then call trace, debug, info, warn, error, fatal methods to output logs.\n     * Global log levels can be configured through JVM argument (e.g, -Dloglevel=debug) \n * Better benchmarking with Timer trait\n     * Extend `xerial.core.util.Timer` trait, then wrap your code with `time`\n method. The execution time of the wrapped code will be reported (in debug log)\n     * You can also divide your code into sub blocks with `block` method.\n     * Repetitive execution is supported; Use `time(repeat=(Int))` or `block(repeat=(Int))`.\n * Resource trait for reading files in classpaths and jar files. \n    * Quite useful for reading resource files. (e.g., test data, graphic data, font files, etc.)\n * Fast PEG parser generator\n    * (on-going) Producing [Silk format](http://xerial.org/silk) parser codes for serval programming language including Scala(Java), C, etc.\n  \n## xerial-lens\nRetrives object type information embeded in Scala-generated class files. \n\n * ObjectSchema for getting full-fledged type information including generic types. \n    * Now you are free-from the type erasure problem!\n    * Use `ObjectSchema(cl:Class[_])` to obtain consturctors, methods and the other parameters defined in a class.  \n    * SigParser of the scalap is used for reading ScalaSignatures.\n * `xerial.lens.cui.Launcher` command line parser\n\n### Applications of ObjectSchema\n * Eq trait for injecting field-value based hashCode and equals method to any objects\n    * Your classes extending Eq trait become ready to use in containers, e.g, Set[K], Map[K, V] etc.  \n\n * Command-line parser (`xerial.lens.cui.Launcher`)\n   * You can call methods in a class by mapping command line arguments to the method arguments\n   * String values are automatically converted to appropriate data types according to the information obtained by ObjectSchema\n\n# Release notes\n * 2016-12-13: release 3.6.0\n   * Support Scala 2.12\n * 2016-03-04: release 3.5.0\n   * Support Scala 2.12.0-M3, 2.11.7, Scala 2.10.6 (except xerial-lens)\n * Version 3.3.8 (Sepmtember 2nd, 2015)\n  * Scala 2.11.7 support\n * Version 3.4   (May 7th, 2015)\n  * Scala 2.12.0-M1 support\n * Version 3.3.6 (March 6th, 2015)\n  * Scala 2.11.6 support. Using Java8 u40 or later is recommended because u20 has a bug that affects scalap behaviour.\n * Version 3.3.5 (Feb 14th, 2015)\n  * Scala 2.11.5 support\n * Version 3.3.0 (June 13th, 2014)\n  * Supporting Scala 2.11.1\n\n * Version 3.2.3 (Jan 4th, 2013)\n  * Upgrade to snappy-java-1.1.0.1\n  * Fix a bug in DataUnit\n * Version 3.2.2\n  * Upgrace to Scala 2.10.3, snappy-java-1.1.0\n * Version 3.2.1\n  * Upgrade to Scala 2.10.2, sbt 0.13.0\n\n * Version 3.2.0\n  * Upgrade to Scala 2.10.1\n  * Logger interface has changed. Use string-interpolation of Scala 2.10 instead of logging methods that take varialbe-length arguments.\n * Version 3.1.1\n  * Timer trait now reports core average of code blocks\n\n * Version 3.1\n  * Scala2.10 support\n  * Enhancement of command-line parser: allow nested command line options \n \n * Version 3.0: Scala-based release. \n  * Migrating common utilities from Java to Scala\n\n## Usage\nAdd the following settings to your sbt build file (e.g., `build.sbt`)\n\n    libraryDependencies += \"org.xerial\" %% \"xerial-core\" % \"3.5.0\"\n    \n    # When you want to use ObjectSchema and command line parser\n    libraryDependencies += \"org.xerial\" %% \"xerial-lens\" % \"3.5.0\"\n\n#### Using Snapshot version\n\n    resolvers += \"Sonatype snapshot repo\" at \"https://oss.sonatype.org/content/repositories/snapshots/\"\n    \n    libraryDependencies += \"org.xerial\" % \"xerial-core\" % \"3.5.1-SNAPSHOT\"\n\n\n## Scala API\n\n(Unidoc of API will be prepared)\n\n* [xerial-core 3.3.5 API](https://oss.sonatype.org/service/local/repositories/releases/archive/org/xerial/xerial-core/3.3.5/xerial-core-3.3.5-javadoc.jar/!/index.html)\n* [xerial-lens 3.3.5 API](https://oss.sonatype.org/service/local/repositories/releases/archive/org/xerial/xerial-lens/3.3.5/xerial-lens-3.3.5-javadoc.jar/!/index.html)\n\n## For Developers\n\n```\n# Cross build\n$ ./sbt \"so test\"\n\n# Release \n$ ./sbt release\n```\n","funding_links":[],"categories":["Scala","[](https://github.com/josephmisiti/awesome-machine-learning/blob/master/README.md#scala)Scala"],"sub_categories":["General-Purpose Machine Learning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxerial%2Fxerial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxerial%2Fxerial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxerial%2Fxerial/lists"}