Feature Requests

Feature, docs and use-case samples requests for ServiceStack. If you can, focus on the end-user benefit / use-case, rather than the technical details so we can focus on the end-goal and free us to work on how best to achieve it. Features can also include supporting content, e.g. a starter project on how to use ServiceStack with another product (e.g. SS + SharePoint).

I suggest you ...

You've used all your votes and won't be able to post a new idea, but you can still search and comment on existing ideas.

There are two ways to get more votes:

  • When an admin closes an idea you've voted on, you'll get your votes back from that idea.
  • You can remove your votes from an open idea you support.
  • To see ideas you have already voted on, select the "My feedback" filter and select "My open ideas".
(thinking…)

Enter your idea and we'll search to see if someone has already suggested it.

If a similar idea already exists, you can support and comment on it.

If it doesn't exist, you can post your idea so others can support it.

Enter your idea and we'll search to see if someone has already suggested it.

  1. Move all extension methods into separate namespace(s)

    When writing code that uses ServiceStack, its fairly common to import the ServiceStack namespace (or others) via a using statement. Doing so will make all the extension methods within that namespace available.

    I have experienced several cases where I have my own custom extension methods with a conflicting signature that I would like to use instead of the ServiceStack method. However there is no ideal way to disambiguate them currently. My only choices are:

    1) Move code around into separate files so that I only import either the ServiceStack namespace or my namespace.

    2) Refer to the proper method by…

    1 vote
    Vote
    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      You have left! (?) (thinking…)

      That’s the opposite of how ServiceStack is designed, hurts discoverability, increases the friction and support burden due to broken references and would result in unacceptable breaking changes. The only extension methods we plan on removing are those duplicated by newer versions of the .NET Framework.

    • Implement BCrypt or SCrypt for IHashProvider

      ServiceStack/Auth/SaltedHash.cs appears to implement one round of a HashAlgorithm. This constrains the user to KeyedHashAlgorithm, MD5, RIPEMD160, SHA1, SHA256, SHA384, and SHA512, none of which are suitable for hashing passwords.

      Would the ServiceStack project consider one of the existing BCrypt or SCrypt implementations in the GitHub community (for example viniciuschiele/Scrypt) or does it require that the library be professionally audited by penetration testers?

      Would it accept a contribution given a valid CLA?

      1 vote
      Vote
      Sign in
      Check!
      (thinking…)
      Reset
      or sign in with
      • facebook
      • google
        Password icon
        I agree to the terms of service
        Signed in as (Sign out)
        You have left! (?) (thinking…)

        No we can’t force any additional dependencies to the core ServiceStack.dll but you can use your own custom HashProvider by registering it in the IOC, e.g:

        container.Register(c =>
        new MyCustomHash());

      • 1 vote
        Vote
        Sign in
        Check!
        (thinking…)
        Reset
        or sign in with
        • facebook
        • google
          Password icon
          I agree to the terms of service
          Signed in as (Sign out)
          You have left! (?) (thinking…)
        • Plugins inside multitenant environment

          Hi!

          We are building an asp.net mvc app with servicestack api. We have a plugin system which allows us dynamically load/unload plugins (Plugin is a custom servicestack plugin) as long as it is not multitenant solution there is no problems, if we wanted another version of plugin we install it during runtime and restart appdomain works like a charm. Now the question is is there a way to do this on multitenant situations where plugins must be loaded/unloaded on each request. To unload them maybe it is not that big of a problem, but how to deal when we have…

          1 vote
          Vote
          Sign in
          Check!
          (thinking…)
          Reset
          or sign in with
          • facebook
          • google
            Password icon
            I agree to the terms of service
            Signed in as (Sign out)
            You have left! (?) (thinking…)
            declined  ·  1 comment  ·  Admin →
          • Support EnumAsInt attribute in ServiceStack.Text JSON serializer

            EnumAsInt was added as an alternative to Flags in OrmLite. This would be nice to have in Text too.

            1 vote
            Vote
            Sign in
            Check!
            (thinking…)
            Reset
            or sign in with
            • facebook
            • google
              Password icon
              I agree to the terms of service
              Signed in as (Sign out)
              You have left! (?) (thinking…)
              1 comment  ·  Admin →

              It’s a feature that it lets you control OrmLite independently of the serializers, otherwise it’s just a duplicate/redundant version of [Flags] which you should use instead if you want it on both.

            • Continue supporting .NET 4.0 projects

              Microsoft has ended support for .NET 4, 4.5 and 4.5.1 on January 12th:
              https://blogs.msdn.microsoft.com/dotnet/2015/12/09/support-ending-for-the-net-framework-4-4-5-and-4-5-1/

              We've started seeing some of our 3rd Party NuGet dependencies stop providing .NET 4.0 builds which is forcing us to reference old packages and prevents us from being able to access newer features.

              As a result we plan to follow .NET recommendation and stop providing .NET 4.0 builds for all releases after August 1st, 2016.

              If you absolutely need .NET 4.0 builds beyond this date please leave a comment on this request describing your use-case as well as the expected date before you will be able…

              5 votes
              Vote
              Sign in
              Check!
              (thinking…)
              Reset
              or sign in with
              • facebook
              • google
                Password icon
                I agree to the terms of service
                Signed in as (Sign out)
                You have left! (?) (thinking…)
              • Upload Symbols for v4.0.48 To SymbolSource

                It looks like the symbols for the 4.0.48 didn't get uploaded to symbolsource.

                0 votes
                Vote
                Sign in
                Check!
                (thinking…)
                Reset
                or sign in with
                • facebook
                • google
                  Password icon
                  I agree to the terms of service
                  Signed in as (Sign out)
                  You have left! (?) (thinking…)
                • Allow customization of authentication route verbs

                  It is currently possible to override the default authentication routes, but only the path can be set. It would be useful to be able to override the allowed verbs. I'd like to be able to prevent GET /auth/credentials, by limiting the endpoint to POSTs only. I've not been able to find any other ways of doing this.

                  3 votes
                  Vote
                  Sign in
                  Check!
                  (thinking…)
                  Reset
                  or sign in with
                  • facebook
                  • google
                    Password icon
                    I agree to the terms of service
                    Signed in as (Sign out)
                    You have left! (?) (thinking…)
                  • Enable FluentAPI to add dynamically response type

                    It's possible to add an overload in Fluent API to register also the response type together with the routing path?

                    For example: Routes.Add(requestType,restPath,verbs,responseType).

                    This can be useful when you can't use the IReturn Interface on DTO objects (for example inside UniversalApp PCL).

                    3 votes
                    Vote
                    Sign in
                    Check!
                    (thinking…)
                    Reset
                    or sign in with
                    • facebook
                    • google
                      Password icon
                      I agree to the terms of service
                      Signed in as (Sign out)
                      You have left! (?) (thinking…)
                    • TechEmpower.com Benchmarks

                      ServiceStack does not look so good here, some are slow, others are failing entirely. I would be particularly interested in nginx and smart thread pool results being updated

                      2 votes
                      Vote
                      Sign in
                      Check!
                      (thinking…)
                      Reset
                      or sign in with
                      • facebook
                      • google
                        Password icon
                        I agree to the terms of service
                        Signed in as (Sign out)
                        You have left! (?) (thinking…)
                        declined  ·  1 comment  ·  Admin →
                      • Possible performance problem in MarkdownFormat plugin

                        The MarkdownFormat plugin recursively searches all directories for *.md files during Registration (in the Register() method).

                        We have some web applications, where we have thousands of (sub-)directories, e.g. in a data folder. This means, that the Register() method may take up to 60 seconds to scan for *.md files, thus slowing down the application startup.
                        We have one customer who reported a startup-delay of several minutes.

                        As far as I have seen (using ServiceStack 3.9.71), there is no way to restrict the folders being searched by the MarkdownFormat plugin.

                        In our case, the workaround was to simply disable the Markdown-Feature…

                        3 votes
                        Vote
                        Sign in
                        Check!
                        (thinking…)
                        Reset
                        or sign in with
                        • facebook
                        • google
                          Password icon
                          I agree to the terms of service
                          Signed in as (Sign out)
                          You have left! (?) (thinking…)
                          1 comment  ·  Admin →
                        • Seperate Funq into it's own package

                          I like using the funq ioc container. The original container doesn't have the auto resolve stuff, and seems to be abandoned (or finished*).

                          It would be cool to use just the servicestack.ioc container in projects without bringing in the whole of servicestack.

                          1 vote
                          Vote
                          Sign in
                          Check!
                          (thinking…)
                          Reset
                          or sign in with
                          • facebook
                          • google
                            Password icon
                            I agree to the terms of service
                            Signed in as (Sign out)
                            You have left! (?) (thinking…)
                            1 comment  ·  Admin →
                          • OWIN compatible ServiceStack

                            With the OWIN specification being final, it seems like support is bound to happen sooner rather than later.

                            I believe some effort was made a couple of year https://github.com/ServiceStack/ServiceStack.Owin).

                            163 votes
                            Vote
                            Sign in
                            Check!
                            (thinking…)
                            Reset
                            or sign in with
                            • facebook
                            • google
                              Password icon
                              I agree to the terms of service
                              Signed in as (Sign out)
                              You have left! (?) (thinking…)

                              Whilst this feature requested OWIN support, it really wanted better integration with the external ecosystem outside of ASP.NET Handlers.

                              This is now resolved with .NET Core which has become the future Web Platform for .NET which as part of its design supports the integrations that OWIN was created to enable.

                              We’re happy to announce that ServiceStack now supports running on .NET Core where it now can happily co-exist with external frameworks, e.g. you can host ServiceStack + MVC together in the same default route space without being forced to mount ServiceStack at a custom `/api` route.

                              For more details on ServiceStack’s support and integration with .NET Core please checkout the full release notes: http://docs.servicestack.net/releases/v4.5.2.html


                              As this feature request was quite contentious I want to leave my closing thoughts on our hesitance to support OWIN:

                              With .NET Core it’s clear OWIN was the…

                            • Create Xamarin Components

                              Create ServiceStack components for the Xamarin Component store.

                              16 votes
                              Vote
                              Sign in
                              Check!
                              (thinking…)
                              Reset
                              or sign in with
                              • facebook
                              • google
                                Password icon
                                I agree to the terms of service
                                Signed in as (Sign out)
                                You have left! (?) (thinking…)

                                Deciding against creating separate Xamarin components at this time – NuGet packages are more re-usable and easier to manage.

                                You can add the NuGet Package Manager to Xamarin Studio to make it easier to install NuGet packages, see:
                                http://barambani.wordpress.com/2013/10/07/add-nuget-package-manager-and-servicestack-to-xamarin-studio-projects-2/

                                Whilst the PCL ServiceStack clients that support iOS and Android are being maintained on: https://github.com/ServiceStack/Hello

                              • Add ServiceStack + Dart + WebComponents / Polymer.js example

                                Add a starter template to make use of the next generation web framework by Google with Dart + WebComponents/Polymer.js https://www.dartlang.org/polymer-dart/

                                7 votes
                                Vote
                                Sign in
                                Check!
                                (thinking…)
                                Reset
                                or sign in with
                                • facebook
                                • google
                                  Password icon
                                  I agree to the terms of service
                                  Signed in as (Sign out)
                                  You have left! (?) (thinking…)
                                • Don't see your idea?

                                Feature Requests

                                Feedback and Knowledge Base