{"categories":[{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/6"}],"enrichment":{"capability":"javalang is a pure Python lexer and parser for Java 8 source code that builds an abstract syntax tree you can traverse to extract information about Java classes, methods, and other language elements.","skillfed_tags":["java-parsing","ast-analysis","code-inspection"],"use_cases":["Extract class and method names from Java source files for documentation or code analysis tools.","Build a Java code search or indexing tool that needs to understand package and type structure.","Analyze Java code for metrics (method count, inheritance depth, etc.) without running a compiler.","Implement a Java code refactoring or transformation tool that needs to parse and manipulate the AST.","Validate or lint Java code snippets in a Python application without invoking javac."],"what_it_does":"javalang is a pure Python library that parses Java source code into an abstract syntax tree (AST) you can inspect and traverse. It includes a lexer (tokenizer) and parser targeting Java 8, built from the official Java language specification. You pass a complete Java source file as a string to javalang.parse.parse() and get back a CompilationUnit object\u2014the root of a tree where each node represents a syntactic element (package, class, method, etc.). You can iterate over the tree, filter by node type, and extract metadata like class names, package declarations, and method signatures.\n\nThe library exposes its components individually: you can tokenize code directly with javalang.tokenizer.tokenize() to get a stream of JavaToken objects with position and value info, or use javalang.parser.Parser directly on a token stream to parse snippets (expressions, type declarations, etc.) rather than full compilation units. It depends only on six for Python 2/3 compatibility, making installation lightweight. However, the project is dormant\u2014last updated in 2020\u2014so it will not track language evolution or receive bug fixes.","worth_installing":"Yes, if you need to parse Java 8 code and can tolerate dormant maintenance. The library is stable, has no known vulnerabilities, installs with minimal friction, and carries a permissive license. It is well-suited for one-off analysis or tooling. Avoid it if you need active maintenance, support for newer language features, or ongoing bug fixes."},"id":"javalang","links":{"html":"https://skillfed.io/packages/javalang","md":"https://skillfed.io/packages/javalang.md","pypi":"https://pypi.org/project/javalang/"},"maintenance":{"status":"dormant"},"meta":{"latest_release":"2020-03-28","license_spdx":null,"license_treatment":"permissive","name":"javalang","python_support":"unspecified","summary":"Pure Python Java parser and tools"},"popularity":{"monthly_downloads":369845,"position":7183,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.13.0"}
