Skip to main content

Universal Programming Language with Enhanced Parser and AUTO_MYSQL_BACKEND Support

Project description

NovaLang ๐Ÿš€ - Universal Programming Language with Complete Database Support

PyPI version Python Support License: MIT Downloads

NovaLang is the world's most comprehensive programming language with universal database support and enhanced parser for Spring Boot-style development. Supporting 70+ database types from SQL to NoSQL, Graph to Vector databases, and everything in between.

๐ŸŽ‰ NEW in v2.2.0: Enhanced Parser & AUTO_MYSQL_BACKEND

  • โœ… Fixed Parser Issues: All syntax now compiles successfully
  • โœ… Spring Boot-Style Syntax: Create backends with familiar patterns
  • โœ… AUTO_MYSQL_BACKEND: Complete guide for automatic MySQL setup
  • โœ… Hybrid Parser: Supports both basic and advanced syntax
  • โœ… Zero Build Errors: Robust error handling and recovery

๐ŸŒŸ Key Features

๐Ÿ—„๏ธ Universal Database Support (70+ Databases)

  • SQL Databases: MySQL, PostgreSQL, Oracle, SQL Server, SQLite, MariaDB, DB2, and 15+ more
  • NoSQL Databases: MongoDB, Cassandra, DynamoDB, CouchDB, HBase, and 10+ more
  • Graph Databases: Neo4j, ArangoDB, JanusGraph, TigerGraph, Amazon Neptune
  • Time Series: InfluxDB, TimescaleDB, Prometheus, Graphite, QuestDB
  • Search Engines: Elasticsearch, Solr, Lucene, Sphinx
  • Vector/AI Databases: Pinecone, Weaviate, Milvus, Qdrant, Chroma, Faiss
  • Cache/In-Memory: Redis, Memcached, Hazelcast, Caffeine, Ignite
  • Blockchain Databases: BigchainDB, Bluzelle
  • Multi-Model: CosmosDB, Fauna, SurrealDB, EdgeDB

๐Ÿ—๏ธ Enterprise Features

  • Multi-Target Compilation: Java/JVM, TypeScript, and more
  • Advanced Type System: Generics, Unions, Optional types, Result types
  • Microservices: Service discovery, load balancing, circuit breakers
  • Cloud-Native: Kubernetes deployment, Docker integration
  • AI/ML Integration: TensorFlow, PyTorch, HuggingFace models
  • Blockchain Support: Smart contracts, DeFi protocols, NFTs
  • Security: OAuth2, JWT, WebAuthn, SAML2, encryption

๐Ÿ› ๏ธ Development Tools

  • CLI Tool: Complete project lifecycle management
  • Advanced Parser: Full AST generation with error recovery
  • Code Generation: Multi-target backend compilation
  • Project Templates: Ready-to-use enterprise project structures

๐Ÿš€ Quick Start

Installation

# Install NovaLang
pip install novalang

# Install with database drivers
pip install novalang[database]

# Install development tools
pip install novalang[dev]

# Install everything
pip install novalang[all]

Your First NovaLang Program

// Universal Database Example
@MySQL
@PostgreSQL
@MongoDB
@Redis
@Service
class UserService {
    @Autowired
    @MySQL
    private mysqlRepo: MySQLUserRepository
    
    @Autowired
    @MongoDB
    private mongoRepo: MongoUserRepository
    
    @Autowired
    @Redis
    private cache: RedisTemplate
    
    @CRUD
    @Transactional
    public createUser(user: User): Result<User> {
        // Save to MySQL
        let savedUser = mysqlRepo.save(user)
        
        // Index in MongoDB for search
        mongoRepo.index(savedUser)
        
        // Cache in Redis
        cache.set(f"user:{savedUser.id}", savedUser, ttl: 3600)
        
        return Success(savedUser)
    }
    
    @Query
    @Cached
    public searchUsers(query: String): List<User> {
        return mongoRepo.search(query)
    }
}

CLI Usage

# Create new project
nova init my-project --template enterprise

# Build project
nova build

# Run project
nova run

# Test project
nova test

# Deploy to cloud
nova deploy --target kubernetes

๐Ÿ“Š Database Examples

SQL Databases

@MySQL
@Entity
@Table(name: "users")
class User {
    @Id
    @GeneratedValue
    private id: Long
    
    @Column(unique: true)
    private email: String
    
    @OneToMany
    private orders: List<Order>
}

NoSQL Databases

@MongoDB
@Document(collection: "products")
class Product {
    @Id
    private id: String
    
    @Field("name")
    @Indexed
    private name: String
    
    @Field("tags")
    private tags: List<String>
}

Graph Databases

@Neo4j
@Node("Person")
class Person {
    @Id
    private id: String
    
    @Property("name")
    private name: String
    
    @Relationship(type: "KNOWS", direction: "OUTGOING")
    private friends: List<Person>
}

Time Series Databases

@InfluxDB
@Measurement("sensor_data")
class SensorReading {
    @Time
    private timestamp: Instant
    
    @Tag("sensor_id")
    private sensorId: String
    
    @Field("temperature")
    private temperature: Double
}

Vector Databases (AI/ML)

@Pinecone
@VectorIndex(dimension: 768)
class DocumentEmbedding {
    @Id
    private id: String
    
    @Vector
    private embedding: Float[]
    
    @Metadata
    private content: String
}

๐Ÿ—๏ธ Architecture

NovaLang follows a modular architecture:

NovaLang
โ”œโ”€โ”€ Lexer (70+ database annotations)
โ”œโ”€โ”€ Parser (Advanced AST generation)
โ”œโ”€โ”€ Compiler (Multi-target code generation)
โ”œโ”€โ”€ Runtime (Universal database connectivity)
โ””โ”€โ”€ CLI (Project lifecycle management)

๐ŸŒ Multi-Target Compilation

NovaLang compiles to multiple targets:

Java/JVM

nova compile --target java
# Generates enterprise Java with Spring Boot integration

TypeScript

nova compile --target typescript  
# Generates TypeScript with Node.js/Express integration

๐Ÿ”ง Database Configuration

NovaLang automatically configures database connections:

// application.nova
@Configuration
class DatabaseConfig {
    @MySQL
    @DataSource
    private mysql: DataSource = {
        url: "jdbc:mysql://localhost:3306/mydb",
        username: "${DB_USER}",
        password: "${DB_PASSWORD}"
    }
    
    @MongoDB  
    @MongoTemplate
    private mongo: MongoTemplate = {
        uri: "mongodb://localhost:27017/mydb"
    }
    
    @Redis
    @RedisTemplate
    private redis: RedisTemplate = {
        host: "localhost",
        port: 6379
    }
}

๐Ÿš€ Deployment

Kubernetes

nova deploy --target kubernetes --namespace production

Docker

nova build --containerize
docker run novalang/my-app

Cloud Platforms

nova deploy --target aws-lambda
nova deploy --target azure-functions
nova deploy --target google-cloud-run

๐Ÿ“ˆ Performance

NovaLang is optimized for performance:

  • JIT Compilation: Runtime optimization
  • Connection Pooling: Efficient database connections
  • Caching: Multi-level caching strategies
  • Parallel Processing: Concurrent database operations
  • Memory Optimization: Zero-copy operations where possible

๐Ÿงช Testing

@Test
class UserServiceTest {
    @Mock
    private userRepository: UserRepository
    
    @InjectMocks  
    private userService: UserService
    
    @Test
    public testCreateUser() {
        // Given
        let user = User(email: "test@example.com")
        
        // When
        let result = userService.createUser(user)
        
        // Then
        assert result.isSuccess()
        assert result.get().id != null
    }
}

๐Ÿ“š Documentation

๐Ÿค Contributing

We welcome contributions! See our Contributing Guide for details.

๐Ÿ“„ License

NovaLang is released under the MIT License.

๐Ÿ† Why NovaLang?

Feature NovaLang Java Python TypeScript
Database Types 70+ 20+ 30+ 25+
Multi-Target โœ… โŒ โŒ โŒ
Type Safety โœ… โœ… โŒ โœ…
Enterprise Ready โœ… โœ… โŒ โŒ
AI/ML Integration โœ… โŒ โœ… โŒ
Blockchain Support โœ… โŒ โŒ โŒ
Cloud Native โœ… โŒ โŒ โŒ

๐ŸŒŸ Star History

Star History Chart


Made with โค๏ธ by Martin Maboya

NovaLang - One Language, All Databases, Every Platform ๐Ÿš€

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

novalang-2.2.1.tar.gz (5.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

novalang-2.2.1-py3-none-any.whl (150.3 kB view details)

Uploaded Python 3

File details

Details for the file novalang-2.2.1.tar.gz.

File metadata

  • Download URL: novalang-2.2.1.tar.gz
  • Upload date:
  • Size: 5.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for novalang-2.2.1.tar.gz
Algorithm Hash digest
SHA256 f6f5d97ae4664e109aa1eaa6d9b1156dd23d2f954a812727b26c880aec5c1450
MD5 c029934d97f462fb0b60b9dd3ed14148
BLAKE2b-256 608481a10d31012b3bbbd2f0f7cd14c94e398f5161d88521d4a67e45764948f8

See more details on using hashes here.

File details

Details for the file novalang-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: novalang-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 150.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for novalang-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2671860695a54bf16ce1a1a62e10dff1aa09d4752a154aa1057c1c43f40e637a
MD5 2563ea0ca6fb3487cfc5dea6fcdadf4c
BLAKE2b-256 136ae3ad20d56f6d90f97b90b91c560f8d74911e54699b7f1d2abe0c2b9ba211

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page