CodeRadius LogoCodeRadius Docs

Supported Frameworks

Languages, frameworks, protocols, databases, and message brokers that CodeRadius analyzes out-of-the-box.

Supported Frameworks

CodeRadius performs semantic analysis — not regex matching. It understands framework-specific decorators, routing conventions, ORM mappings, and message dispatch patterns natively. When you ingest a repository, CodeRadius automatically discovers services, APIs, database connections, and message channels without any manual configuration.

Missing a framework or protocol? CodeRadius supports manual declarations via coderadius.yaml for any pattern that static analysis cannot infer automatically.


StatusMeaning
FullProduction-tested. AST-level extraction with high precision.
PartialCore patterns supported. Some advanced or dynamic patterns may require coderadius.yaml hints.
PlannedOn the roadmap. Not yet available.

TypeScript / JavaScript

Full AST-level parsing with native understanding of decorator-based and convention-based routing.

FrameworkStatusNotes
NestJSFullControllers, Resolvers, Guards, Interceptors, @MessagePattern, @EventPattern
ExpressFullRoute registration via Router, middleware chains
FastifyFullRoute registration, schema declarations
Next.jsPartialAPI Routes and Route Handlers. Page-level data fetching not yet traced.
Apollo ServerPartial@Resolver, @Query, @Mutation, @Subscription. Client-side operations traced as outbound.

PHP

Full AST-level parsing with support for PHP 8 attributes, legacy annotations, and convention-based routing.

FrameworkStatusNotes
SymfonyFull#[Route], @Route annotations, Messenger handlers, Doctrine ORM, Console commands
SlimFullRoute registration via $app, route groups, middleware
API PlatformFull#[ApiResource], GraphQL integration, custom operations
LaravelPartialRoute registration, Eloquent models. Facade-based calls may require coderadius.yaml hints.
LumenPartialRoute registration. Shares Laravel limitations on facade resolution.

Python

Full AST-level parsing with native understanding of decorator-based routing and type-hinted dependency injection.

FrameworkStatusNotes
FastAPIFull@app.get/post, Pydantic models, dependency injection, OpenAPI schema
FlaskFull@app.route, Blueprints, url_for resolution
DjangoPartialurls.py patterns, class-based views. ORM model tracing is heuristic-based.

Go

Full AST-level parsing with native understanding of handler registration patterns across major routers.

FrameworkStatusNotes
GinFullRoute groups, middleware
FiberFullRoute groups
EchoFullRoute groups, middleware
net/httpFullhttp.HandleFunc, ServeMux patterns

In Development

The following languages are on the roadmap with active development in progress.

LanguageFrameworkStatus
JavaSpring BootPlanned
QuarkusPlanned
C#ASP.NET CorePlanned
RubyRailsPlanned

API Patterns & Protocols

ProtocolStatusNotes
REST APIsFullAuto-discovered from framework decorators, route registrations, and OpenAPI specs
OpenAPI / SwaggerFullopenapi.yaml, swagger.json — parsed and cross-referenced with code
GraphQLFullServer-side resolvers and schema extraction. Client-side operations traced as outbound dependencies.
gRPCPlanned.proto file parsing and service mesh tracing

Databases

CodeRadius detects which databases a service communicates with via ORM configurations, query patterns, and connection endpoint detection in environment files. Credentials are never read or stored.

DatabaseStatusNotes
PostgreSQLFullORM configs (TypeORM, Prisma, Doctrine, SQLAlchemy), raw SQL query analysis
MySQL / MariaDBFullORM configs, raw SQL query analysis
MongoDBPartialCollection names extracted from model() and .collection() calls (Mongoose, native driver). Endpoint detection via env files.
SQLitePartialORM-based detection. Limited raw query tracing.
RedisPartialCache operation detection (get/set/del). Key-level tracing not yet supported.

Message Brokers

CodeRadius models messaging across three ontological layers so blast radius, governance, and lineage stay correct even on multi-cluster deployments:

  • MessageBroker — physical broker instance (cluster, host, vhost, region, env). Identity is fingerprinted on (provider:host:port:vhost) so two clusters with the same nominal name stay distinct.
  • MessageChannel with scope ∈ {logical, physical, transport}logical is the business event (e.g. OrderCreated), physical is the broker address (e.g. exchange acme.orders on rmq-prod-eu), transport is the Symfony Messenger / Mass Transit / Spring-Cloud wrapper around an underlying physical channel.
  • Edges(LogicalChannel)-[:MANIFESTS_AS]->(PhysicalChannel), (TransportChannel)-[:BACKED_BY]->(PhysicalChannel), (MessageChannel)-[:HOSTED_ON]->(MessageBroker), (MessageChannel)-[:ROUTES_TO {bindingKey, isPattern, patternRegex}]->(MessageChannel), (MessageChannel)-[:DEAD_LETTERS_TO]->(MessageChannel).

Two safety rules are non-negotiable: strict broker isolation (channels on different brokers are never welded heuristically) and customer-declared mirrors only (Shovel / Federation / MirrorMaker convergence requires an explicit message_channels.mirrors[] block in coderadius.yaml).

Provider matrix

BrokerStatusDiscoveryNotes
RabbitMQ (AMQP)Fullstructural + coderabbitmq-definitions.json and rabbitmq.conf parsed for exchanges/queues/bindings (with topic-pattern regex compilation for * / #). Publisher/consumer call sites extracted via LLM.
Symfony MessengerFullstructural + codeconfig/packages/messenger.yaml parsed for transports + routing. Emits a meta-broker plus MANIFESTS_AS edges from each MessageClass to its routed transport(s), and BACKED_BY to the underlying AMQP/Doctrine/Redis channel. Modern #[AsMessageHandler] and legacy __invoke patterns both supported.
Google Cloud Pub/SubFullstructural + codeTopic/subscription declarations via Crossplane CRDs (DataBackboneTopicClaim, DataBackboneTopicSubscriptionClaim); subscription filter preserved on the ROUTES_TO edge.
KafkaPartialcodeCode-level publisher/consumer detection via kafkajs, @upstash/kafka, confluentinc/cp-kafka. Structural extraction from server.properties / AsyncAPI is planned.
AWS SQS / SNSPartialcodeCode-level detection via @aws-sdk/client-sqs, @aws-sdk/client-sns, sqs-consumer. CloudFormation/Terraform topology parsing is planned.
Azure Service BusPartialcodeCode-level detection via @azure/service-bus. ARM/Bicep parsing planned.
NATSPartialcodeCode-level publisher/consumer via nats.js / PHP NATS clients. Config parsing planned.
Apache PulsarPartialcodeCode-level detection via pulsar-client. Topic namespace parsing planned.
Redis StreamsPartialcodeStream commands (XADD/XREAD/XREADGROUP) detected via taint analysis.
MQTT / MosquittoPartialcodeClient-side topic publishers and subscribers detected. Broker config (mosquitto.conf) parsing planned.
ZeroMQPartialcodeSocket-style detection (socket.bind, socket.connect) — pattern is code-only, no broker config file by design.

Custom decorator support

NestJS broker decorators (@MessagePattern, @EventPattern, @RabbitSubscribe, @SqsMessageHandler, @Process) are recognized natively. Proprietary or customer-specific consumer decorators (@AliceConsumer, @ConduitHandler, @AcmeBusConsumer, …) plug in via coderadius.yaml:

decorators:
  - name: AliceConsumer
    kind: message-consumer
    args: [queueName, routingKey, queue, name, topic]

The framework-signal extractor consults the registered decorator name (case-insensitive) and emits a LISTENS_TO edge with the resolved channel name (from the named arg or the first string literal). See Custom decorator registration and Messaging domain model for the full architecture.


CI/CD Platforms

cr blast integrates with any CI system via exit codes and structured output. The table below refers to native pipeline integration: pre-built job templates that run the impact check and post results as a PR/MR comment automatically, without custom scripting.

PlatformStatusNotes
GitHub ActionsPartialPre-built workflow template available. Impact report posted as PR comment via --format markdown.
GitLab CI/CDPartialPre-built pipeline template available. Impact report posted as MR note via --format markdown.
Bitbucket PipelinesPartialPre-built pipeline template available. Manual comment posting required.
JenkinsPlannedJenkinsfile integration

Configuration File Detection

CodeRadius automatically detects and extracts architectural information from configuration and build files.

File / PatternStatusWhat is extracted
docker-compose.ymlDetectedService topology, network links, volume mounts
DockerfileDetectedBase image registry, multi-stage build stages
Makefile, GNUmakefileDetectedBuild targets exposed as Task nodes
package.jsonDetectedscripts block — task commands with precise runner detection (npm/pnpm/yarn/bun)
composer.jsonDetectedscripts block — Composer task commands
openapi.yaml, swagger.jsonDetectedFull endpoint and schema extraction
prisma/schema.prismaDetectedModel → table mappings
ormconfig.json, doctrine.yamlDetectedORM datasource configuration
renovate.json, .renovatercDetectedDependency update policy (extends, automerge, schedule)
catalog-info.yamlDetectedBackstage component, system, team ownership
.devcontainer/devcontainer.jsonDetectedDev environment standardization signal
*.protoPlannedgRPC service definitions

Package Manager Detection

CodeRadius detects the specific package manager used per project — not just the ecosystem. This is exposed as ToolConfig nodes in the graph and visible in the System Registry dashboard.

JavaScript / TypeScript

Detection priority:

  1. packageManager field in package.json (Corepack standard, e.g. "packageManager": "pnpm@9.15.0")
  2. Lockfile presence — checked in the same directory, then walking up to the repo root (monorepo-aware)
  3. Fallbacknpm
LockfileDetected Package Manager
pnpm-lock.yamlDetected pnpm
yarn.lockDetected yarn
bun.lock / bun.lockbDetected bun
package-lock.jsonDetected npm

PHP

LockfileDetected Package Manager
composer.lockDetected Composer

Python

LockfileDetected Package Manager
poetry.lockDetected Poetry
Pipfile.lockDetected Pipenv
uv.lockDetected uv
pdm.lockDetected PDM

Go

LockfileDetected Package Manager
go.sumDetected Go Modules

On this page