# Cibyl, a lightweight curly-bracket language which compiles to Ruby and Crystal

**URL:** <https://metaruby.com/t/cibyl-a-lightweight-curly-bracket-language-which-compiles-to-ruby-and-crystal/1848>\
**Category:** Crystal Forum\
**Created:** [August 2, 2018, 11:34am UTC](https://metaruby.com/t/cibyl-a-lightweight-curly-bracket-language-which-compiles-to-ruby-and-crystal/1848 "2018-08-02T11:34:43Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![ecstaticcoder](https://metaruby.com/user_avatar/metaruby.com/ecstaticcoder/32/1089_2.png) [@ecstaticcoder](https://metaruby.com/u/ecstaticcoder)\
**Post date:** [August 2, 2018, 11:34am UTC](https://metaruby.com/t/cibyl-a-lightweight-curly-bracket-language-which-compiles-to-ruby-and-crystal/1848/1 "2018-08-02T11:34:43Z")

</div>

[https://github.com/senselogic/CIBYL](https://github.com/senselogic/CIBYL)

Cibyl allows to use a C-like syntax for Ruby and Crystal applications :

```
// Recursive Fibonacci function

def fibonacci(
    n : Int32
    )
{
    if ( n <= 1 )
    {
        return 1;
    }
    else
    {
        return fibonacci( n - 1 ) + fibonacci( n - 2 );
    }
}

puts fibonacci( 5 );

```

It also allows to replace keywords, and to use a different case convention :

```
require "http/server";

server = HTTP::SERVER.New
    do |context|
    {
        context.Response.ContentType = "text/plain";
        context.Response.Print( "Hello world! The time is #{TIME.Now}" );
    }

address = server.BindTcp( 8080 );
Puts( "Listening on http://#{address}" );
server.Listen();

```

Obviously, Cibyl is NOT intended for the typical Ruby/Crystal lover. Its primary goal is to allow those who find a curly-bracket language syntax more pleasant to their eyes, to not disregard Ruby or Crystal just because of their syntactic preferences…
